我的项目中有大约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");
}
};
提前致谢。