如何检查单元测试所需的时间(全班)

时间:2015-07-27 23:01:23

标签: java junit rule

我的项目中有大约5000个单元测试,我正在尝试记录每个单元测试所花费的时间。我不能通过进入每个单元测试来编辑@Before和@After。

我正在尝试使用@Rule,但不知何故没有帮助,我甚至无法让它工作但我将注释更改为@ClassRule并使我的观察者静止我能够至少掌握开始和结束单元测试执行,我只是不知道单元测试的名称。这是我的代码:

我有一个名为IIMUnitTest(父类)的类,所有Unit测试都扩展了这个类。

我将以下代码添加到IIMUnitTest

@Rule
public TestRule watcher = new TestWatcher() {
    Long timeStart;
    protected void starting(Description description) {
         timeStart = System.currentTimeMillis();
        Calendar cal = Calendar.getInstance();
        System.out
                .println("===========================================================================");
        System.out.println("Test: " + description.getMethodName());
        TimeZoneFormat dateFormat = null;
        System.out.println("Start Time: " + dateFormat.format(cal.getTime()));
        System.out
                .println("==============================================");
    }

    protected void finished(Description description) {
        Long timeEnd = System.currentTimeMillis();
        double seconds = (timeEnd-timeStart)/1000.0;
        System.out
                .println("\n============================================================");
        System.out
                .println("Test completed - ran in: "+new DecimalFormat("0.000").format(seconds)+" sec");
        System.out
                .println("========================\n");

    }
};

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以扩展属于JUnit 4.12的规则StopWatch。它为你做计算。