diff options
Diffstat (limited to 'junit4/doc/ReleaseNotes4.9.txt')
-rw-r--r-- | junit4/doc/ReleaseNotes4.9.txt | 89 |
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 |