Java 在Eclipse中如何计算JUnit测试的时间?
我正在为我的应用程序开发一些JUnit测试 当我在Eclipse中运行测试时,我会得到每个测试的结果和花费的时间,如下图所示 但是它是如何计算的呢? 它是否包括每个测试在@Before和@After方法中花费的时间,还是只考虑在@test方法中花费的时间Java 在Eclipse中如何计算JUnit测试的时间?,java,eclipse,junit,Java,Eclipse,Junit,我正在为我的应用程序开发一些JUnit测试 当我在Eclipse中运行测试时,我会得到每个测试的结果和花费的时间,如下图所示 但是它是如何计算的呢? 它是否包括每个测试在@Before和@After方法中花费的时间,还是只考虑在@test方法中花费的时间 谢谢在JUnit中,有一个名为TestListener的intreface。JUnit提供了一些附加到每个测试运行的实现。其中一个实现是Result类中的内部Listener类。它是这样计算时间的 public void testRunSta
谢谢在JUnit中,有一个名为
TestListener
的intreface。JUnit提供了一些附加到每个测试运行的实现。其中一个实现是Result
类中的内部Listener
类。它是这样计算时间的
public void testRunStarted(Description description) throws Exception {
startTime.set(System.currentTimeMillis());
}
@Override
public void testRunFinished(Result result) throws Exception {
long endTime = System.currentTimeMillis();
runTime.addAndGet(endTime - startTime.get());
}
代码取自org.junit.runner.Result
junit4.12
计算后,JUnit发布包含所有测试结果的“报告”。Eclipse或Idea等IDE附加到测试JUnit上,它们实现了可以解析和显示“报告”的
TestListener
。最后,来自IDE的侦听器将消息发送到IDE窗口,您可以看到测试结果和时间。为什么不进行测试?在用@Before
或@Before
注释的方法中,执行一个长时间运行的任务,看看它是否影响结果。eclipse没有计算任何东西。junit测试运行程序正在执行计算。似乎在给定测试的持续时间中不包括
和
方法;在前一种方法中,测试的最终时间超过7秒。我认为这意味着所花费的时间也考虑了前后方法……不是吗?如果您想确切知道测试或秒表花费的时间,请在测试方法开始和结束时(不包括@Before和@After)使用System.currentTimeMillis()