Thanks to a full cast of contributors of bug fixes and new features.
A full summary of commits between 4.9 and 4.10 is on github
junit-dep-4.9.jar incorrectly contained hamcrest classes, which could lead to version conflicts in projects that depend on hamcrest directly. This is fixed in 4.10 [@dsaff, closing gh-309]
The RuleChain rule allows ordering of TestRules:
public static class UseRuleChain {
@Rule
public TestRule chain= RuleChain
.outerRule(new LoggingRule("outer rule")
.around(new LoggingRule("middle rule")
.around(new LoggingRule("inner rule");
@Test
public void example() {
assertTrue(true);
}
}
writes the log
starting outer rule
starting middle rule
starting inner rule
finished inner rule
finished middle rule
finished outer rule
TemporaryFolder#newFolder(String... folderNames)
creates recursively deep temporary folders [@rodolfoliviero, closing gh-283]TemporaryFolder#newFile()
creates a randomly named new file, and#newFolder()
creates a randomly named new folder [@Daniel Rothmaler, closing gh-299]
The Theories
runner does not anticipate theory parameters that have generic
types, as reported by github#64. Fixing this won't happen until Theories
is
moved to junit-contrib. In anticipation of this, 4.9.1 adds some of the
necessary machinery to the runner classes, and deprecates a method that only
the Theories
runner uses, FrameworkMethod
#producesType().
The Common Public License that JUnit is released under is now included
in the source repository.
Thanks to @pholser
for identifying a potential resolution for github#64
and initiating work on it.
- Built-in Rules implementations
- TemporaryFolder should not create files in the current working directory if applying the rule fails [@orfjackal, fixing gh-278]
- TestWatcher and TestWatchman should not call failed for AssumptionViolatedExceptions [@stefanbirkner, fixing gh-296]
- Javadoc bugs
- Assert documentation [@stefanbirkner, fixing gh-134]
- ClassRule [@stefanbirkner, fixing gh-254]
- Parameterized [@stefanbirkner, fixing gh-89]
- Parameterized, again [@orfjackal, fixing gh-285]
- Miscellaneous
- Useless code in RunAfters [@stefanbirkner, fixing gh-289]
- Parameterized test classes should be able to have
@Category
annotations [@dsaff, fixing gh-291] - Error count should be initialized in junit.tests.framework.TestListenerTest [@stefanbirkner, fixing gh-225]
- AssertionFailedError constructor shouldn't call super with null message [@stefanbirkner, fixing gh-318]
- Clearer error message for non-static inner test classes [@stefanbirkner, fixing gh-42]
- Description, Result and Failure are Serializable [@ephox-rob, closing gh-101]
- FailOnTimeout is reusable, allowing for retrying Rules [@stefanbirkner, closing gh-265]
- New
ErrorCollector.checkThat
overload, that allows you to specify a reason [@drothmaler, closing gh-300]