summaryrefslogtreecommitdiffstats
path: root/junit4/doc/ReleaseNotes4.5.txt
diff options
context:
space:
mode:
Diffstat (limited to 'junit4/doc/ReleaseNotes4.5.txt')
-rw-r--r--junit4/doc/ReleaseNotes4.5.txt96
1 files changed, 96 insertions, 0 deletions
diff --git a/junit4/doc/ReleaseNotes4.5.txt b/junit4/doc/ReleaseNotes4.5.txt
new file mode 100644
index 0000000..66aac70
--- /dev/null
+++ b/junit4/doc/ReleaseNotes4.5.txt
@@ -0,0 +1,96 @@
+## Summary of Changes in version 4.5 ##
+
+### Installation ###
+
+- We are releasing `junit-4.5.jar`, which contains all the classes
+ necessary to run JUnit, and `junit-dep-4.5.jar`, which leaves out
+ hamcrest classes, for developers who already use hamcrest outside of
+ JUnit.
+
+### Basic JUnit operation ###
+
+- JUnitCore now more often exits with the correct exit code (0 for
+ success, 1 for failure)
+
+- Badly formed test classes (exceptions in constructors, classes
+ without tests, multiple constructors, Suite without @SuiteClasses)
+ produce more helpful error messages
+
+- Test classes whose only test methods are inherited from superclasses
+ now run.
+
+- Optimization to annotation processing can cut JUnit overhead by more than half
+ on large test classes, especially when using Theories. [Bug 1796847]
+
+- A failing assumption in a constructor ignores the class
+
+- Correct results when comparing the string "null" with potentially
+ null values. [Bug 1857283]
+
+- Annotating a class with `@RunWith(JUnit4.class)` will always invoke the
+ default JUnit 4 runner in the current version of JUnit. This default changed
+ from `JUnit4ClassRunner` in 4.4 to `BlockJUnit4ClassRunner` in 4.5 (see below),
+ and may change again.
+
+### Extension ###
+
+- `BlockJUnit4Runner` is a new implementation of the standard JUnit 4
+ test class functionality. In contrast to `JUnit4ClassRunner` (the old
+ implementation):
+
+ - `BlockJUnit4Runner` has a much simpler implementation based on
+ Statements, allowing new operations to be inserted into the
+ appropriate point in the execution flow.
+
+ - `BlockJUnit4Runner` is published, and extension and reuse are
+ encouraged, whereas `JUnit4ClassRunner` was in an internal package,
+ and is now deprecated.
+
+- `ParentRunner` is a base class for runners that iterate over
+ a list of "children", each an object representing a test or suite to run.
+ `ParentRunner` provides filtering, sorting, `@BeforeClass`, `@AfterClass`,
+ and method validation to subclasses.
+
+- `TestClass` wraps a class to be run, providing efficient, repeated access
+ to all methods with a given annotation.
+
+- The new `RunnerBuilder` API allows extending the behavior of
+ Suite-like custom runners.
+
+- `AssumptionViolatedException.toString()` is more informative
+
+### Extra Runners ###
+
+- `Parameterized.eachOne()` has been removed
+
+- New runner `Enclosed` runs all static inner classes of an outer class.
+
+### Theories ###
+
+- `@Before` and `@After` methods are run before and after each set of attempted parameters
+ on a Theory, and each set of parameters is run on a new instance of the test class.
+
+- Exposed API's `ParameterSignature.getType()` and `ParameterSignature.getAnnotations()`
+
+- An array of data points can be introduced by a field or method
+ marked with the new annotation `@DataPoints`
+
+- The Theories custom runner has been refactored to make it faster and
+ easier to extend
+
+### Development ###
+
+- Source has been split into directories `src/main/java` and
+ `src/test/java`, making it easier to exclude tests from builds, and
+ making JUnit more maven-friendly
+
+- Test classes in `org.junit.tests` have been organized into
+ subpackages, hopefully making finding tests easier.
+
+- `ResultMatchers` has more informative descriptions.
+
+- `TestSystem` allows testing return codes and other system-level interactions.
+
+### Incompatible changes ###
+
+- Removed Request.classes(String, Class<?>...) factory method