aboutsummaryrefslogtreecommitdiff
path: root/README.html
diff options
context:
space:
mode:
authorBrett Chabot <brettchabot@google.com>2009-06-17 17:21:33 -0700
committerBrett Chabot <brettchabot@google.com>2009-06-17 17:21:33 -0700
commit58a8b0aba2dec5695628a2bf25a3fae42c2c3533 (patch)
tree7c3e88d9efbf280f4849710858b6a67c740920be /README.html
parentd550fde3ba6ac3e9b5abb87b7d722a4d30f8d57b (diff)
downloadjunit-58a8b0aba2dec5695628a2bf25a3fae42c2c3533.tar.gz
Add junit 3.8.2 source to external/junit.
Diffstat (limited to 'README.html')
-rw-r--r--README.html736
1 files changed, 736 insertions, 0 deletions
diff --git a/README.html b/README.html
new file mode 100644
index 0000000..df6f10f
--- /dev/null
+++ b/README.html
@@ -0,0 +1,736 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+ <meta name="Author" content="Erich Gamma &amp; Kent Beck">
+ <title>JUnit 3.8</title>
+</head>
+<body>
+<h1>
+<b><font color="#00cc00">J</font><font color="#ff0000">U</font><font
+ color="#000000">nit
+3.8.2</font></b></h1>
+<hr width="100%">
+<font color="#000000"><br>
+11/11/2004<br>
+</font>
+<ul>
+ <li><font color="#000000"><a href="#Summary%20of">Summary of Changes</a></font></li>
+ <li>
+ <font color="#000000"><a href="#Contents">Contents</a></font></li>
+ <li>
+ <font color="#000000"><a href="#Installation">Installation</a></font></li>
+ <li>
+ <font color="#000000"><a href="#Getting">Getting Started</a></font></li>
+ <li>
+ <font color="#000000"><a href="#Documentation">Documentation</a></font></li>
+</ul>
+<h2>
+<font><a name="Summary of"></a><font color="#000000">Summary of Changes
+between 3.8.1 and 3.8.2</font></font></h2>
+<font color="#000000">The changes between the versions are minimal and
+the focus was on fixing the accumulated bug reports. The most
+signifanct change is replacing the much-reviled string comparison
+format with something easier to read and use.<br>
+</font>
+<ul>
+ <li>ComparisonFailure shows context.&nbsp; <br>
+ </li>
+ <ul>
+ <li>assertEquals("Mary had a little lamb", "Mary had the little
+lamb") shows: expected:&lt;Mary had [a] little lamb&gt; but
+was:&lt;Mary had [the] little lamb&gt;<br>
+Longer prefixes and suffixes are truncated to a fixed size (currently
+20):</li>
+ <li>expected:&lt;...st of the emergency [broadcasting]
+system&gt; but was:&lt;...st of the emergency [locating] system&gt;<br>
+ </li>
+ </ul>
+ <li><font color="#000000">Running single tests.&nbsp;
+junit.ui.TestRunner can be invoked with "-m</font> ClassName.testName"
+to run a single test.</li>
+ <li>TestSuite(Class[]).&nbsp;
+There is a new TestSuite constructor that takes an array of classes as
+a parameter and returns a suite of suites, each of which is constructed
+from a single class.</li>
+</ul>
+<h3><font><font color="#000000">Closed Bugs/Patches and Enhancment
+Requests<br>
+</font></font></h3>
+<ul>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=698067&amp;group_id=15278&amp;atid=115278">assertEquals(float,float,delta)
+fails on negative delta</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=609972&amp;group_id=15278&amp;atid=115278">'...'
+in ComparisonFailure</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=461535&amp;group_id=15278&amp;atid=115278">Trouble
+in teardown hides orig. probl.</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=609819&amp;group_id=15278&amp;atid=115278">NaN's
+in assertEquals</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=620039&amp;group_id=15278&amp;atid=115278">BaseTestRunner.setPreference
+static</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=658044&amp;group_id=15278&amp;atid=115278">failNotEquals()
+should be protected</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=777097&amp;group_id=15278&amp;atid=115278">RFE:
+make private methods protected</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=654507&amp;group_id=15278&amp;atid=365278">Printing
+version number</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=993150&amp;group_id=15278&amp;atid=315278">Patch
+to quell warnings in tiger</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=657593&amp;group_id=15278&amp;atid=315278">Enhanced
+ComparisonFailure output</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=625016&amp;group_id=15278&amp;atid=315278">addt'l
+TestSuite constructrs for Class[]</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=908467&amp;group_id=15278&amp;atid=315278">Run
+one test method for junit</a></li>
+ <li><a
+ href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=756480&amp;group_id=15278&amp;atid=315278">excluded.properties:
+Add commons logging</a></li>
+</ul>
+<h2><font color="#000000">Summary of Changes between 3.8 and 3.8.1</font></h2>
+<ul>
+ <font color="#000000"> <li>Backed out setting the testing Thread's
+context class loader (see <a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=598200&amp;group_id=15278&amp;atid=115278">JUnit
+not setting ClassLoader</a>). It has caused problems in tests that
+worked OK before. See the bug report for more details.</li>
+ <li>Fixes:&nbsp;
+ <ul>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=601326&amp;group_id=15278&amp;atid=115278">NPE
+in ComparisonFailure</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=602948&amp;group_id=15278&amp;atid=115278">Swing
+UI: NoSuchMethodError on JDK 1.3</a></li>
+ </ul>
+ </li>
+ </font>
+</ul>
+<h2>
+<font color="#000000">Summary of Changes between 3.7 and 3.8</font></h2>
+<h3>
+<font color="#000000">Framework</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Made the string argument TestCase constructor
+optional. You can now delete
+constructors of the form "FooTestCase(String name) { super(name); }".</font></li>
+ <li>
+ <font color="#000000">Deleted deprecated assert(boolean) in favor
+of assertTrue(boolean) and
+assertFalse(boolean). To migrate to JUnit 3.8, rename calls to
+assert(boolean)
+to call assertTrue(boolean).</font></li>
+ <li>
+ <font color="#000000">Added assertFalse() to avoid the difficult of
+reading the assertTrue(!
+condition).</font></li>
+ <li>
+ <font color="#000000">Added assertNotSame(Object, Object).</font></li>
+ <li>
+ <font color="#000000">Deleted deprecated TestCase.name() in favor
+of TestCase.getName().</font></li>
+ <li>
+ <font color="#000000">Deleted deprecated package junit.ui in favor
+of junit.awtui.</font></li>
+</ul>
+<h3>
+<font color="#000000">Test Runner</font></h3>
+<ul>
+ <li>
+ <font color="#000000">When you compare two long strings with a
+small delta embedded in the middle, it
+is hard to spot the difference. In 3.8, when you call
+assertEquals(String,
+String), only the differences between the strings are displayed. The
+common
+prefix and suffix are replaced with "...".</font></li>
+ <li>
+ <font color="#000000">Added initial version of a TestRunListener
+attached to TestRunners which
+eventually will replace TestListeners attached to the TestResult.</font></li>
+ <li>
+ <font color="#000000">Filled in ActiveTestSuite constructors.</font></li>
+ <li>
+ <font color="#000000">Added these packages to the
+excluded.properties:<font size="2">
+ <ul>
+ <li>org.w3c.dom.*</li>
+ <li>org.xml.sax.*</li>
+ <li>net.jini.*</li>
+ </ul>
+ </font></font></li>
+ <li><font color="#000000">Extracted textual formatting of a
+TestResult from junit.textui.TestRunner into ResultPrinter.</font></li>
+</ul>
+<h3><font color="#000000">Documentation</font></h3>
+<ul>
+ <font color="#000000"> <li>Much improved <a href="doc/faq/faq.htm">FAQ</a>
+thanks to Mike Clark.</li>
+ </font>
+</ul>
+<h3><font color="#000000">Closed Bugs</font></h3>
+<ul>
+ <font color="#000000"> <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=583346&amp;group_id=15278&amp;atid=115278">Class
+loader problem</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=551239&amp;group_id=15278&amp;atid=115278">Cookbook
+Simple Test Case problems</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=539015&amp;group_id=15278&amp;atid=115278">License
+not included in source</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=560081&amp;group_id=15278&amp;atid=115278">assert
+is a keyword</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=572444&amp;group_id=15278&amp;atid=115278">javadoc
+returns mysterious message</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=581251&amp;group_id=15278&amp;atid=115278">swingui
+CounterPanel values disappear</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=574641&amp;group_id=15278&amp;atid=115278">TestCase
+javadoc incorrect example</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=582784&amp;group_id=15278&amp;atid=115278">silly
+cookbook error</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=583328&amp;group_id=15278&amp;atid=115278">junit
+properties missfunction</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=595957&amp;group_id=15278&amp;atid=115278">Test.java
+is not Serializable</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=598200&amp;group_id=15278&amp;atid=115278">JUnit
+not setting ClassLoader`</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=592713&amp;group_id=15278&amp;atid=115278">NullPointerException
+when loading suite</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=544683&amp;group_id=15278&amp;atid=115278">labels
+for bug counts too small in Swing</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=537502&amp;group_id=15278&amp;atid=115278">Swing
+TestRunner layout shifts</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=528868&amp;group_id=15278&amp;atid=115278">Exit
+code problem for cygwin/w2k</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=529953&amp;group_id=15278&amp;atid=115278">Automatic
+reload causes strange errors</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=532952&amp;group_id=15278&amp;atid=115278">TestRunner
+fails with swing/awtui</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=533411&amp;group_id=15278&amp;atid=115278">CVS
+version doesn't build on NetBSD</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=520210&amp;group_id=15278&amp;atid=115278">NullPointerException
+JUnit sample w/ Ant</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=527511&amp;group_id=15278&amp;atid=115278">money
+sample bug</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=491981&amp;group_id=15278&amp;atid=115278">incomplete
+message from failNotSame()</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=471577&amp;group_id=15278&amp;atid=115278">Icons
+on systems with 64 colors exceptio</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=470324&amp;group_id=15278&amp;atid=115278">1000+
+tests, swing gui doesn't display</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=442752&amp;group_id=15278&amp;atid=115278">test
+selector included incorrect classes</a></li>
+ <li><a
+ href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=430974&amp;group_id=15278&amp;atid=115278">No
+UI update when re-run methods fail</a></li>
+ </font>
+</ul>
+<h2>
+<font color="#000000">Summary of Changes between 3.6 and 3.7</font></h2>
+<h3>
+<font color="#000000">GUI</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Eliminated warning when re-running tests when
+class loading checkbox is
+unchecked. There are legitimate reasons for doing this, so a warning
+didn't
+make much sense, and it was too obtrusive.</font></li>
+ <li>
+ <font color="#000000">Stopped reloading classes when running in
+VisualAge for Java.</font></li>
+ <li>
+ <font color="#000000">Print total number of tests as well as number
+of tests run so far (Swing
+only).</font></li>
+</ul>
+<h3>
+<font color="#000000">Framework</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Introduced Assert.assertTrue(boolean) and
+assertTrue(String, boolean) deprecated
+assert(boolean) and assert(String, boolean) in preparation for the
+assert
+keyword in Java 1.4. We plan to support native assertions when they are
+publicly available. You can either move to assertTrue() or wait for 1.4
+and delete parentheses as the syntax is e.g. "assert 2 == 3".</font></li>
+ <li>
+ <font color="#000000">Added accessors for TestCase.fName and
+TestSuite.fName.</font></li>
+ <li>
+ <font color="#000000">Added a no argument TestCase constructor to
+support serialization.</font></li>
+ <li>
+ <font color="#000000">Improved warnings when constructing
+TestSuites.</font></li>
+</ul>
+<h3>
+<font color="#000000">Text Runner</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Made doRun() public so clients can create a
+text runner with a specified
+output stream and then run tests.</font></li>
+</ul>
+<h3>
+<font color="#000000">Fixed Bugs (SourceForge Bug Tracker Ids)</font></h3>
+<font color="#000000">&nbsp;&nbsp;&nbsp; [420315] No trace when fail
+with message...
+<br>
+&nbsp;&nbsp;&nbsp; [419375] reload warning lags
+<br>
+&nbsp;&nbsp;&nbsp; [418849] Classloader warning too obtrusive
+<br>
+&nbsp;&nbsp;&nbsp; [417978] constructor stack trace, please
+<br>
+&nbsp;&nbsp;&nbsp; [415103] Reload checkbox should be ignored in VAJ
+<br>
+&nbsp;&nbsp;&nbsp; [414954] error reporting when invoking suite()
+<br>
+&nbsp;&nbsp;&nbsp; [407296] Make doRun() public
+<br>
+&nbsp;&nbsp;&nbsp; [227578] rmi callbacks fail since TestCase has no
+noArg constructor
+<br>
+&nbsp;&nbsp;&nbsp; [422603] Decorated decorators bug
+</font>
+<h2><font color="#000000">Summary of Changes between 3.5 and 3.6</font></h2>
+<h3>
+<font color="#000000">TestRunner</font></h3>
+<ul>
+ <li>
+ <font color="#000000">The UI test runners provide a check box to
+enable/disable the custom class
+loader. The user is warned when running a second test with the non
+loading
+class loader.</font></li>
+ <li>
+ <font color="#000000">Renames to address file name length
+limitation on MacOS:</font></li>
+ <ul>
+ <li>
+ <font color="#000000">LoadingClassPathTestCollector -&gt;
+LoadingTestCollector</font></li>
+ <li>
+ <font color="#000000">SimpleClassPathTestCollector -&gt;
+SimpleTestCollector</font></li>
+ </ul>
+</ul>
+<h3>
+<font color="#000000">Framework</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Added TestSuite.getName()</font></li>
+</ul>
+<h3>
+<font color="#000000">Builds</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Updated the build script for Ant 1.3.</font></li>
+</ul>
+<h3>
+<font color="#000000">Fixed Bugs (SourceForge Bug Tracker Ids)</font></h3>
+<blockquote><font color="#000000">[ #229753 ] assertEquals on NaN and
+Infinity does not work
+correctly
+ <br>
+[ #229287 ] Class Name too long "SimpleClassPathTestCollector"
+ <br>
+[ #229609 ] Stack Filtering missing in textui.TesRunner
+ <br>
+[ #229870 ] Clicking on ... after tests failed gives NPE
+ <br>
+[ #229974 ] Incorrect icon shown for first element in Swing GUI
+ <br>
+[ #230581 ] swingui.TestTreeModel: results of decorated testcases...
+ <br>
+[ #230971 ] Make junit.extensions.TestDecorator.getTest() public
+ <br>
+[ #231569 ] DocBug: JUnit Test Infected: Programmers Love Writing Tests
+ <br>
+[ #232645 ] BaseTestRunner.getTest loses exception information
+ <br>
+[ #233094 ] TestSuite masks exceptions
+ <br>
+[ #410967 ] No icon provided for first test
+ <br>
+[ #230745 ] ClassPathTestCollector sometimes lists classes in duplicate</font></blockquote>
+<h3>
+<font color="#000000">Documentation</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Added documentation about the <a
+ href="doc/JUnitProperties.html">properties</a>
+supported by TestRunners.</font></li>
+ <li>
+ <font color="#000000">Updated the FAQ</font></li>
+</ul>
+<h2>
+<font color="#000000">Summary of Changes between 3.4 and 3.5</font></h2>
+<h3>
+<font color="#000000">Framework</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Added TestSuite.addTestSuite(Class testClass)</font></li>
+ <font color="#000000"><br>
+This method allows to create a TestSuite with a class containing test
+cases directly.
+ <br>
+Instead of writing <b>suite.addTest(new TestSuite(AssertTest.class))
+ </b>you
+can now write <b>suite.addTestSuite(AssertTest.class)</b>;
+ <li>Added assertEquals methods for all primitive types: float,
+boolean, byte,
+char, int, short</li>
+ <li>
+The signature of&nbsp; TestListeners.addFailure(Test test, Throwable t)</li>
+ <br>
+was changed to addFailure(Test test, AssertionFailedError t)</font>
+</ul>
+<h3>
+<font color="#000000">TestRunner</font></h3>
+<ul>
+ <li>
+ <font color="#000000">The Swing TestRunner provides an experimental
+feature to browse test classes.
+There is an additional browse ("...") button besides the suite combo.
+It
+shows a simple dialog to select a test class from a list. Different
+strategies
+to locate Test classes are supported and you can plug-in your own
+strategy.
+This allows to leverage functionality provided by an extension API of
+an
+integrated development environment (IDE). To define a custom test
+collector
+you 1) implement the <b>junit.runner.TestCollector </b>interface and
+2)
+add an entry to the <b>junit.properties</b> file with the key <b>TestCollectorClass</b>
+and the name of your TestCollector implementation class as the key:</font></li>
+ <font color="#000000"><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+TestCollectorClass=junit.swingui.LoadingClassPathTestCollector
+ <br>
+This class has to be installed on the class path.
+ <br>
+JUnit provides two different TestCollector implementations:
+ </font>
+ <ul>
+ <li>
+ <font color="#000000">simple
+(junit.runner.SimpleClassPathTestCollector) - considers all classes
+on the class path on the file system that contain "Test" in their name.
+Classes in JARs are not considered.</font></li>
+ <li>
+ <font color="#000000">loading
+(junit.runner.LoadingClassPathTestCollector) - loads all classes
+on the class path and tests whether the class is assignable from Test
+or
+has a static <b>suite</b> method.</font></li>
+ </ul>
+ <font color="#000000">By default the simple the test collector is
+used. The loading collector
+is more precise but much slower than the simple one. The loading
+collector
+doesn't scale up when many classes are available on the class path.
+ <br>
+ <b><font color="#ff0000">Notice</font></b>: that both TestCollectors
+assume that the class files reside are kept in the file system. This
+isn't
+case in VA/Java and they will not work there. A custom TestCollector is
+required for VA/Java.
+ <li>The Swing TestRunner now provides an additional test result view
+that shows
+all tests of the executed test suite as a tree. The view shows the
+success
+status for each test. The view is shown as an additional tab in the
+TestRunner
+window. In previous versions of JUnit this view was shown in a separate
+window.</li>
+ <li>
+The failure panels in the Swing and AWT TestRunners filter the
+exception
+stack trace so that only non-framework stack frames are shown.</li>
+ <li>
+There is support to plug-in a custom failure panel that provides
+additional
+functionality like navigating from a failure to the source. To do so
+you
+implement the <b>junit.runner.FailureDetailView</b> interface and
+register
+the implementation class in the junit.properties file under the key <b>FailureViewClass</b>,
+for example</li>
+ <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+FailureViewClass=MyFailureViewClassName.
+ <li>The Swing and AWT TestRunners now understand an additional
+command line
+argument "-noloading". When this argument is set then the standard
+system
+class loader is used to load classes. This is an alternative to setting
+the <b>loading</b> property to false in the junit.properties file.</li>
+ <li>
+Swing TestRunner - the maximum test history length shown in the suite
+combo
+can be defined in the junit.properties file with the key <b>maxhistory</b>.</li>
+ <li>
+BaseTestRunner.<b>getLoader</b>() is no longer a static method and can
+now be overridden in subclasses.</li>
+ <li>
+BaseTestRunner removed dependency on JDK 1.2.</li>
+ <li>
+Swing TestRunner - fixed the problem that a suite name was sometimes
+duplicated
+in the history combo.</li>
+ <li>
+Swing TestRunner - the Run button is now the default button.</li>
+ <li>
+Output string truncation can now be controlled by adding the <b>maxmessage</b>
+key with the desired maximum length to the junit.properties file.
+Setting
+maxmessage to -1 means no output truncation.</li>
+ <li>
+The Text TestRunner now shows the summary at the very end so that you
+don't
+have to scroll back.</li>
+ </font>
+</ul>
+<h3>
+<font color="#000000">Tests</font></h3>
+<ul>
+ <li>
+ <font color="#000000">TextRunnerTest now only depends on a nonzero
+status to indicate abnormal
+termination.</font></li>
+ <li>
+ <font color="#000000">TextRunnerTest now also passes on JDK 1.1.*.
+It uses the -classpath command
+line argument instead of -cp.</font></li>
+</ul>
+<h3>
+<font color="#000000">Documentation</font></h3>
+<ul>
+ <li>
+ <font color="#000000">Add an FAQ entry about what to do when the
+junit tests provided with the
+distribution can't be found.</font></li>
+</ul>
+<h2>
+<font color="#000000">Older Change Notes</font></h2>
+<blockquote>
+ <li><font color="#000000">Changes between <a
+ href="doc/changes34.html">2.1 and 3.4</a></font></li>
+ <li>
+ <font color="#000000">Changes between <a href="doc/changes21.html">1.0
+and 2.1</a></font></li>
+</blockquote>
+<h2>
+<font color="#000000"><a name="Contents"></a>Contents of the Release</font></h2>
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td><tt>README.html&nbsp;</tt></td>
+ <td>this file</td>
+ </tr>
+ <tr>
+ <td><tt>junit.jar</tt></td>
+ <td>a jar file with the JUnit framework and&nbsp; tools&nbsp;</td>
+ </tr>
+ <tr>
+ <td>src.jar</td>
+ <td>a jar file with the source code of the junit framework</td>
+ </tr>
+ <tr>
+ <td><tt>junit</tt></td>
+ <td>the source code of the JUnit samples</td>
+ </tr>
+ <tr>
+ <td><tt>&nbsp;&nbsp;&nbsp; samples</tt></td>
+ <td>sample test cases</td>
+ </tr>
+ <tr>
+ <td><tt>&nbsp;&nbsp;&nbsp; tests</tt></td>
+ <td>test cases for JUnit itself</td>
+ </tr>
+ <tr>
+ <td><tt>javadoc</tt></td>
+ <td>javadoc generated documentation</td>
+ </tr>
+ <tr>
+ <td><tt>doc</tt></td>
+ <td>documentation and articles</td>
+ </tr>
+ </tbody>
+</table>
+<h2>
+<font color="#000000"><a name="Installation"></a>Installation</font></h2>
+<font color="#000000">Below are the installation steps for installing
+JUnit:
+</font>
+<ol>
+ <li>
+ <font color="#000000">unzip the junit.zip file</font></li>
+ <li>
+ <font color="#000000">add<i> </i><b>junit.jar</b> to the
+CLASSPATH. For example: <tt>set
+classpath=%classpath%;INSTALL_DIR\junit3\junit.jar</tt></font></li>
+ <li>
+ <font color="#000000">test the installation by using either the
+batch or the graphical TestRunner
+tool to run the tests that come with this release. All the tests should
+pass OK.</font></li>
+ <font color="#000000"><br>
+ <b><font color="#ff0000">Notice</font></b>: that the tests are not
+contained in the junit.jar but in the installation directory directly.
+Therefore make sure that the installation directory is on the class
+path
+ </font>
+ <ul>
+ <li>
+ <font color="#000000">for the batch TestRunner type:</font></li>
+ <font color="#000000"><br>
+ <tt>&nbsp;&nbsp;&nbsp; java junit.textui.TestRunner
+junit.samples.AllTests</tt>
+ <li>for the graphical TestRunner type:</li>
+ <br>
+ <tt>&nbsp;&nbsp;&nbsp; java junit.awtui.TestRunner
+junit.samples.AllTests</tt>
+ <li>for the Swing based graphical TestRunner type:</li>
+ <br>
+ <tt>&nbsp;&nbsp;&nbsp; java junit.swingui.TestRunner
+junit.samples.AllTests</tt></font>
+ </ul>
+</ol>
+<font color="#000000"><b><font color="#ff0000">Important</font></b>:
+don't install the junit.jar
+into the extension directory of your JDK installation. If you do so the
+test class on the files system will not be found.
+</font>
+<h2><font color="#000000"><a name="Getting"></a>Getting Started</font></h2>
+<font color="#000000">To get started with unit testing and JUnit read
+the Java Report article:
+<a href="doc/testinfected/testing.htm">Test
+Infected - Programmers Love Writing Tests</a>.
+<br>
+This article demonstrates the development process with JUnit in the
+context of multiple currency arithmetic. The corresponding source code
+is in junit\samples\money.
+</font>
+<p><font color="#000000">You find additional samples in the
+junit.samples package:
+</font></p>
+<ul>
+ <li>
+ <font color="#000000">SimpleTest.java - some simple test cases</font></li>
+ <li>
+ <font color="#000000">VectorTest.java - test cases for
+java.util.Vector</font></li>
+</ul>
+<h2>
+<font color="#000000"><a name="Documentation"></a>Documentation</font></h2>
+<blockquote><font color="#000000"><a href="doc/cookbook/cookbook.htm">JUnit
+Cookbook</a>
+ <br>
+&nbsp;&nbsp;&nbsp; A cookbook for implementing tests with JUnit.
+ <br>
+ <a href="doc/testinfected/testing.htm">Test Infected - Programmers
+Love Writing Tests</a>
+ <br>
+&nbsp;&nbsp;&nbsp; An article demonstrating the development process
+with JUnit.
+ <br>
+ <a href="doc/cookstour/cookstour.htm">JUnit - A cooks tour</a>
+ <br>
+ <a href="javadoc/index.html">Javadoc</a>
+ <br>
+&nbsp;&nbsp;&nbsp; API documentation generated with javadoc.
+ <br>
+ <a href="doc/faq/faq.htm">Frequently asked questions</a>
+ <br>
+&nbsp;&nbsp;&nbsp; Some frequently asked questions about using JUnit.
+ <br>
+ <a href="doc/JUnitProperties.html">TestRunner Preference settings</a>
+ <br>
+&nbsp;&nbsp;&nbsp; Describes the preferences settings that can be
+configured
+for the JUnit TestRunners.<br>
+ <a href="cpl-v10.html">License</a>
+ <br>
+&nbsp;&nbsp;&nbsp; The terms of the common public license used for
+JUnit.</font></blockquote>
+<h2>
+<font color="#000000"><a name="Extending"></a>Extending JUnit</font></h2>
+<font color="#000000">Examples of possible JUnit extensions can be
+found in the <tt>junit.extensions</tt>
+package:
+</font>
+<ul>
+ <li>
+ <font color="#000000"><a
+ href="javadoc/junit/extensions/TestDecorator.html">TestDecorator</a>
+- A decorator for Test. You can use it as the base class for
+implementing
+decorators to extend test cases.</font></li>
+ <li>
+ <font color="#000000"><a
+ href="javadoc/junit/extensions/ActiveTestSuite.html">ActiveTestSuite</a>
+- A TestSuite which runs each test in a separate thread and waits until
+they are all terminated.</font></li>
+ <li>
+ <font color="#000000"><a
+ href="javadoc/junit/extensions/TestSetup.html">TestSetup</a> - A
+Decorator
+to set up and tear down additional fixture state. Subclass TestSetup
+and
+insert it into your tests when you want to set up additional state once
+before the tests are run.</font></li>
+ <li>
+ <font color="#000000"><a
+ href="javadoc/junit/extensions/ExceptionTestCase.html">ExceptionTestCase</a>
+- A TestCase that expects a particular Exception to be thrown.</font></li>
+</ul>
+<hr width="100%">
+<!--webbot bot="HTMLMarkup" startspan --><font color="#000000"><a
+ href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=15278" width="88"
+ height="31" border="0" alt="SourceForge Logo"></a><!--webbot
+bot="HTMLMarkup" endspan --></font>
+</body>
+</html>