forked from junit-team/junit4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReleaseNotes4.10.html
93 lines (75 loc) · 3.51 KB
/
ReleaseNotes4.10.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<h2>Summary of Changes in version 4.10 [unreleased!]</h2>
<p>A full summary of commits between 4.9 and 4.10 is on <a href="https://github.com/KentBeck/junit/compare/r4.9...4.10">github</a></p>
<h3>junit-dep has correct contents</h3>
<p>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]</p>
<h3>RuleChain</h3>
<p>The RuleChain rule allows ordering of TestRules:</p>
<pre><code>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);
}
}
</code></pre>
<p>writes the log</p>
<pre><code>starting outer rule
starting middle rule
starting inner rule
finished inner rule
finished middle rule
finished outer rule
</code></pre>
<h3>TemporaryFolder</h3>
<ul>
<li><code>TemporaryFolder#newFolder(String... folderNames)</code> creates recursively deep temporary folders
[@rodolfoliviero, closing gh-283]</li>
<li><code>TemporaryFolder#newFile()</code> creates a randomly named new file, and <code>#newFolder()</code> creates a randomly named new folder
[@Daniel Rothmaler, closing gh-299]</li>
</ul>
<h3>Theories</h3>
<p>The <code>Theories</code> runner does not anticipate theory parameters that have generic
types, as reported by github#64. Fixing this won't happen until <code>Theories</code> 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 <code>Theories</code> runner uses, <code>FrameworkMethod</code>#producesType().
The Common Public License that JUnit is released under is now included
in the source repository.</p>
<p>Thanks to <code>@pholser</code> for identifying a potential resolution for github#64
and initiating work on it.</p>
<h3>Bug fixes</h3>
<ul>
<li>Built-in Rules implementations
<ul>
<li>TemporaryFolder should not create files in the current working directory if applying the rule fails
[@orfjackal, fixing gh-278]</li>
<li>TestWatcher and TestWatchman should not call failed for AssumptionViolatedExceptions
[@stefanbirkner, fixing gh-296]</li>
</ul></li>
<li>Javadoc bugs
<ul>
<li>Assert documentation [@stefanbirkner, fixing gh-134]</li>
<li>ClassRule [@stefanbirkner, fixing gh-254]</li>
<li>Parameterized [@stefanbirkner, fixing gh-89]</li>
<li>Parameterized, again [@orfjackal, fixing gh-285]</li>
</ul></li>
<li>Miscellaneous
<ul>
<li>Useless code in RunAfters [@stefanbirkner, fixing gh-289]</li>
<li>Parameterized test classes should be able to have <code>@Category</code> annotations
[@dsaff, fixing gh-291]</li>
<li>Error count should be initialized in junit.tests.framework.TestListenerTest [@stefanbirkner, fixing gh-225]</li>
<li>AssertionFailedError constructor shouldn't call super with null message [@stefanbirkner, fixing gh-318]</li>
<li>Clearer error message for non-static inner test classes [@stefanbirkner, fixing gh-42]</li>
</ul></li>
</ul>
<h3>Minor changes</h3>
<ul>
<li>Description, Result and Failure are Serializable [@ephox-rob, closing gh-101]</li>
<li>FailOnTimeout is reusable, allowing for retrying Rules [@stefanbirkner, closing gh-265]</li>
<li>New <code>ErrorCollector.checkThat</code> overload, that allows you to specify a reason [@drothmaler, closing gh-300]</li>
</ul>