动态运行JUnit测试方法

时间:2016-03-29 09:35:40

标签: java junit

如何使用JUnit动态动态运行不同测试方法的子集?

目标是拥有一个可以从命令行使用参数调用的jar文件(例如TestClass1#testMethod1,TestClass1#testMethod2,TestClass2#testMethod1)。使用以下命令可以轻松地运行单个测试方法:

Request request = Request.method('CLASSNAME', 'METHODNAME');
new JUnitCore().run(request);

但是如何在运行中添加更多测试方法?理想情况下,这不仅会为每个方法重复JUnitCore().run(),而是将所有已定义的方法组合到单个运行中。怎么办呢?

2 个答案:

答案 0 :(得分:1)

我认为您可以过滤要运行的类/方法:

    Request request = Request.classes(...
    Filter filter = new Filter() {
        @Override
        public boolean shouldRun(Description description) {
            ... get class and method and decide...

        }
        @Override
        public String describe() {
            return null;
        }
    };
    request.filterWith(filter);

答案 1 :(得分:0)

也许你可以使用runClasses(java.lang.Class<?>... classes)(运行类中包含的测试)。

http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html