Dynamically run all JUnit Tests in Directories or on the Classpath
Pull request Compare This branch is 51 commits behind cschoell:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


JUnit DynamicSuite

The JUnit DynamicSuite is a library used to create a dynamic Suite of JUnit Tests from a directory. The Unit Tests can be filtered dynamically by annotating the Suite with a filter.



To get your started just annotate a class with


This will run all Tests ending with “Test” in the directory


which is specified as default in the Directory Annotation.

Instead of using @Directory you might aswell use

@ClassPath(includeJars = true)

which scans the ClassPath for test classes. The Parameter includeJars allows you to control wether to scan the jars on the classpath (default false - only directories).

To create a custom filter you may either implement the interface TestClassFilter or extend the DefaultFilter.


You can let the dynamic suite directly implement the TestClassFilter interface as shown below.

public class IntegrationSuite implements TestDirectoryFilter {

    public boolean include(String className) {
        return className.endsWith("ITCase");

    public boolean include(Class cls) {
        return cls.getAnnotation(Ignore.class) == null;


Either include the library directly by downloading it here from github or include it in Maven (from Maven Central Repository):



Copyright © 2011 Christof Schoell

The files in this archive are released under the Apache 2.0 license.

You may obtain a copy of this license under www.apache.org/licenses/LICENSE-2.0