Concutest


About Concutest
Introduction
Concutest-JUnit
Thread Checker
Schedule-Based Execution

Using Concutest
Download
How to Run
License

Resources
Documentation
FAQ
Publications
Concutest Community Project

Give Feedback
Features, Bugs, Support
Contact Us

Developers
SourceForge Project
Developer Docs
Javadocs
Developer Blog

      Concutest-JUnit

Concutest-JUnit is a concurrency-aware version of JUnit that actively supports the developer in writing unit tests for concurrent programs.

The original version of JUnit and other frameworks like TestNG are not effective in testing concurrent programs: Their criteria for success and failure are incorrect, and their design promotes writing bad tests that succeed by default even when they should fail. This makes writing good concurrent tests as hard as writing good concurrent programs.

We have corrected a number of defects of JUnit. The two most important improvements are:

  1. Automatic exception handling in auxiliary threads.
  2. Requiring the main thread to wait until all threads it has spawned have finished.

Concutest-JUnit is designed as a drop-in replacement for JUnit versions 3.8.2, 4.1, and 4.2. If you are currently using JUnit 4.2, simply replace the original junit-4.2.jar file with our concutest-junit-4.2.jar file.

We recognize the tremendous efforts the creators of the original JUnit have made and in no way claim to have written most of the code. We have only made small improvements, view Concutest-JUnit as a temporary research framework, and hope that our changes will eventually be merged with the original JUnit. When using Concutest-JUnit, please also respect JUnit's licensing terms.

More information will be available soon.

ConcJUnit Downloads

Preliminary versions of the Concutest-JUnit binaries and source code are available for download here:

A stand-alone plugin that can be used in addition to the standard JUnit 4.2 library is also available. Contrary to the libraries available above, this plugin does not by default enable automatic handling of exceptions in other threads and forced joins of auxiliary threads. The plugin is set up to be invoked using JUnit 4.2's @RunWith attribute:


Concutest is partially funded by the National Science Foundation and the Texas Advanced Technology Program.
Copyright © 2004-2008 by Mathias Ricken. All rights reserved.
Support This Project