File: ReleaseNotes4.10.md

package info (click to toggle)
junit4 4.13.2-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 4,544 kB
  • sloc: java: 31,240; javascript: 1,339; xml: 796; makefile: 2; sh: 1
file content (86 lines) | stat: -rw-r--r-- 3,276 bytes parent folder | download | duplicates (4)
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
## Summary of Changes in version 4.10 ##

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](https://github.com/junit-team/junit4/compare/r4.9...r4.10)

### junit-dep has correct contents ###

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]

### RuleChain ###

The RuleChain rule allows ordering of TestRules:

```java
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 ###

- `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]

### Theories ###

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.

### Bug fixes ###

- 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]

### Minor changes ###

- 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]