JUnit 4.9 released!
David Saff <[email protected]> Tue, 23 Aug 2011 11:44:25 -0400
| Newsgroups | gmane.comp.java.junit.user,gmane.comp.java.junit.devel,gmane.comp.java.junit.announce |
|---|---|
| Message-ID | <CACj8BuNugOc1dF+XGMDNHO9Y=bY_eqLzADLm46fJuSVJMjqzCw@mail.gmail.com> |
Hello, everyone. We're happy to announce the release of JUnit 4.9.
This release's theme is Test-class and suite level Rules. More
information linked from
http://saffgreenbar.blogspot.com/2011/08/junit-49-released.html, and
release notes below.
Note: please remember that until some website issues are cleared up,
the direct path to the new JavaDoc is at
http://kentbeck.github.com/junit/javadoc/4.9/.
Share and enjoy, and please try it out and give us feedback. Thanks,
Your friendly neighborhood JUnit maintainers
## 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
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/junit/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/junit/join
(Yahoo! ID required)
<*> To change settings via email:
[email protected]
[email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/