A simple, one-file implementation of a test framework for Java.
- As small as possible, but no smaller. The entire API surface consists of
three annotations:
@Test,@Skipand@Timeout(). - Use
@Testwith any static method to declare the method as a test case. Pass a string to describe the behavior being tested, for example:@Test("should throw exception when passed a negative number") - Use
@Skipon a class or method to temporarily skip test cases.UnitTest.javawill display the test case but not run it. - Use
@Timeout(5000)to change the amount of timeUnitTest.javawill wait for a test case to finish. The default timeout is 2,000 milliseconds (two seconds).
Run UnitTest.java with no command line arguments. It will search the classpath
for methods annotated with @Test, run each of them, and print the results.
Failures are always printed last. For example:
> java UnitTest
[skip] HeapTest.testRemove (? ms)
[pass] HeapTest.testException (0.05 ms)
[pass] HeapTest.testIsEmpty (0.03 ms)
[fail] HeapTest.testInsert (0.19 ms)
java.util.NoSuchElementException
at Heap.remove(Heap.java:75)
4 tests, 1 skipped, 2 passed, 1 failed
A command line argument will limit the search to classes/methods with the given
pattern. For example, to run only test cases in the Foobar class, run
> java UnitTest Foobar