summaryrefslogtreecommitdiffstats
path: root/junit4/doc/ReleaseNotes4.9.txt
diff options
context:
space:
mode:
Diffstat (limited to 'junit4/doc/ReleaseNotes4.9.txt')
-rw-r--r--junit4/doc/ReleaseNotes4.9.txt89
1 files changed, 89 insertions, 0 deletions
diff --git a/junit4/doc/ReleaseNotes4.9.txt b/junit4/doc/ReleaseNotes4.9.txt
new file mode 100644
index 0000000..8b2a63d
--- /dev/null
+++ b/junit4/doc/ReleaseNotes4.9.txt
@@ -0,0 +1,89 @@
+## Summary of Changes in version 4.9, final ##
+
+Release theme: Test-class and suite level Rules.
+
+### ClassRule ###
+
+The `ClassRule` annotation extends the idea of method-level Rules,
+adding static fields that can affect the operation of a whole class. Any
+subclass of `ParentRunner`, including the standard `BlockJUnit4ClassRunner`
+and `Suite` classes, will support `ClassRule`s.
+
+For example, here is a test suite that connects to a server once before
+all the test classes run, and disconnects after they are finished:
+
+ @RunWith(Suite.class)
+ @SuiteClasses({A.class, B.class, C.class})
+ public class UsesExternalResource {
+ public static Server myServer= new Server();
+
+ @ClassRule
+ public static ExternalResource resource= new ExternalResource() {
+ @Override
+ protected void before() throws Throwable {
+ myServer.connect();
+ };
+
+ @Override
+ protected void after() {
+ myServer.disconnect();
+ };
+ };
+ }
+
+### TestRule ###
+
+In JUnit 4.9, fields that can be annotated with either `@Rule` or `@ClassRule`
+should be of type `TestRule`. The old `MethodRule` type, which only made sense
+for method-level rules, will still work, but is deprecated.
+
+Most built-in Rules have been moved to the new type already, in a way that
+should be transparent to most users. `TestWatchman` has been deprecated,
+and replaced by `TestWatcher`, which has the same functionality, but implements
+the new type.
+
+### Maven support ###
+
+Maven bundles have, in the past, been uploaded by kind volunteers. Starting
+with this release, the JUnit team is attempting to perform this task ourselves.
+
+### LICENSE checked in ###
+
+The Common Public License that JUnit is released under is now included
+in the source repository.
+
+### Bug fixes ###
+
+- github#98: assumeTrue() does not work with expected exceptions
+- github#74: Categories + Parameterized
+
+ In JUnit 4.8.2, the Categories runner would fail to run correctly
+ if any contained test class had a custom Runner with a structure
+ significantly different from the built-in Runner. With this fix,
+ such classes can be assigned one or more categories at the class level,
+ and will be run correctly. Trying to assign categories to methods within
+ such a class will flag an error.
+
+- github#38: ParentRunner filters more than once
+
+ Thanks to `@reinholdfuereder`
+
+- github#248: protected BlockJUnit4ClassRunner#rules method removed from 4.8.2
+- github#187: Accidental dependency on Java 6
+
+Thanks to `@kcooney` for:
+
+- github#163: Bad comparison failure message when using assertEquals(String, String)
+- github#227: ParentRunner now assumes that getChildren() returns a modifiable list
+
+### Minor changes ###
+
+- Backed out unused folder "experimental-use-of-antunit", replaced by
+ bash-based script at build_tests.sh
+- Various Javadoc fixes
+
+Thanks to `@kcooney` for:
+
+- Made MultipleFailureException public, to assist extension writers.
+- github#240: Add "test" target to build.xml, for faster ant-driven testing.
+- github#247: Give InitializationError a useful message