JUnit多次运行测试

时间:2014-11-28 12:18:50

标签: java unit-testing junit junit4

我有一个失败的单元测试,并想知道为什么。我发现测试执行了400次。试图找出导致测试执行多次的原因,我将代码简化为以下内容:

package reproduce;

import org.junit.After;
import org.junit.Test;
import static org.junit.experimental.results.PrintableResult.testResult;

public class FailingTest
{
    static int objCount = 0;

    public FailingTest()
    {
        objCount++;
    }

    @Test
    public void test()
    {
        System.out.println(objCount);
    }

    @After
    public void tearDown()
    {
        testResult(FailingTest.class); // comment this to run only once
    }
}

在我的tearDown()方法中,我试图找出测试的结果,因为我的清理操作可能需要几分钟,所以我只想在发生故障时清理,但不是成功的例子。

我发现在code of the verifier rule中使用testResult()并认为它对我有用,但如果我的测试经常运行400次,那么它将无用。

这是实验性PrintableResult的错误,我做错了什么还是有另一种/更简单的方法来实现我的预期结果?

1 个答案:

答案 0 :(得分:2)

请参阅Junit PrintableResult source在testResult内部,您的测试似乎再次执行,因此它是递归调用。可以找到有关获取测试结果的一些有用信息here