将代码添加到Junit的后类中

时间:2014-02-20 08:59:10

标签: java unit-testing junit

如何在单元测试中向@AfterClass方法添加一些代码,但不修改测试源代码并通过junit cmd运行它。 这是我的尝试,但它不会覆盖单元测试的@AfterClass。

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.Request;
import org.junit.AfterClass;
import org.junit.After;
import org.uni.DumpGenerator;

public class SingleJUnitTestRunner {
    public static void main(String... args) throws ClassNotFoundException {
        String classAndMethod = args[0];
    Request request = Request.aClass(Class.forName(classAndMethod));
        Result result = new JUnitCore().run(request);
    }
    @AfterClass
    public static void afterClass() throws Exception, InterruptedException {
    System.gc();
    Thread.sleep(5000L);
    DumpGenerator.dumpToFile("test", "afterRun");
    }
}

然后我使用这个cmd:     java -cp pathtojunit SingleJUnitTestRunner Mytest

但是后方法不起作用。 任何帮助! 提前致谢。

1 个答案:

答案 0 :(得分:2)

@AfterClass注释适用于测试用例,而不是测试运行器。您可以将它应用于您要运行的每个测试(或基类),也可以直接在main函数中调用它:

public static void main(String... args) throws Exception, ClassNotFoundException {
    String classAndMethod = args[0];
    Request request = Request.aClass(Class.forName(classAndMethod));
    Result result = new JUnitCore().run(request);
    afterClass();
}