Skip to content

Commit

Permalink
Merge branch '4.10'
Browse files Browse the repository at this point in the history
Conflicts:
	build.xml
	src/main/java/junit/runner/Version.java
  • Loading branch information
dsaff committed Sep 29, 2011
2 parents 3b55eac + 38c12ee commit 4c8d3ff
Show file tree
Hide file tree
Showing 3 changed files with 169 additions and 17 deletions.
13 changes: 10 additions & 3 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,13 @@
<property name="src" value="src/main/java" />
<property name="target" location="target" />
<property name="bin" location="${target}/main" />
<<<<<<< HEAD
<property name="version-base" value="4.11" />
<property name="version-status" value="-SNAPSHOT" />
=======
<property name="version-base" value="4.10" />
<property name="version-status" value="" />
>>>>>>> 4.10
<property name="version" value="${version-base}${version-status}" />
<property name="dist" value="junit${version}" />
<property name="versionfile" value="${src}/junit/runner/Version.java" />
Expand Down Expand Up @@ -270,7 +275,7 @@
url="@{url}" repo.id="@{repo.id}" />

<if>
<equals arg1="${is.snapshot}" arg2="false" />
<equals arg1="@{is.snapshot}" arg2="false" />
<then>
<push.maven.jar jar="${m.sources.jar}" pom="${m.pom}"
url="@{url}" repo.id="@{repo.id}">
Expand All @@ -293,10 +298,12 @@

<push.maven.artifact artifactId="junit"
url="${stage.url}"
repo.id="${stage.repo.id}" />
repo.id="${stage.repo.id}"
is.snapshot="false" />
<push.maven.artifact artifactId="junit-dep"
url="${stage.url}"
repo.id="${stage.repo.id}" />
repo.id="${stage.repo.id}"
is.snapshot="false" />
</target>

<target name="snapshot.maven" depends="all.maven.jars">
Expand Down
89 changes: 82 additions & 7 deletions doc/ReleaseNotes4.10.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,93 @@
<h2>Summary of Changes in version 4.10 [unreleased!]</h2>

<h3>Bug fixes</h3>
<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>Minor changes</h3>
<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");

<p>Thanks to <code>@rodolfoliviero</code> for:</p>
@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>github#283: Feature to create recursive temporary folders.</li>
<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>

<p>Thanks to <code>@drothmaler</code> for:</p>
<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>github#299: Random temporary file/folder creation</li>
<li>github#300: New <code>ErrorCollector.checkThat</code> overload, that allows you to specify a reason</li>
<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>
84 changes: 77 additions & 7 deletions doc/ReleaseNotes4.10.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,84 @@
## Summary of Changes in version 4.10 [unreleased!] ##
## 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/KentBeck/junit/compare/r4.9...4.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:

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

Thanks to `@rodolfoliviero` for:
- 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]

- github#283: Feature to create recursive temporary folders.

Thanks to `@drothmaler` for:

- github#299: Random temporary file/folder creation
- github#300: New `ErrorCollector.checkThat` overload, that allows you to specify a reason

0 comments on commit 4c8d3ff

Please sign in to comment.