Java 在Eclipse中如何计算JUnit测试的时间?

Java 在Eclipse中如何计算JUnit测试的时间?,java,eclipse,junit,Java,Eclipse,Junit,我正在为我的应用程序开发一些JUnit测试 当我在Eclipse中运行测试时,我会得到每个测试的结果和花费的时间,如下图所示 但是它是如何计算的呢? 它是否包括每个测试在@Before和@After方法中花费的时间,还是只考虑在@test方法中花费的时间 谢谢在JUnit中,有一个名为TestListener的intreface。JUnit提供了一些附加到每个测试运行的实现。其中一个实现是Result类中的内部Listener类。它是这样计算时间的 public void testRunSta

我正在为我的应用程序开发一些JUnit测试

当我在Eclipse中运行测试时,我会得到每个测试的结果和花费的时间,如下图所示

但是它是如何计算的呢? 它是否包括每个测试在@Before和@After方法中花费的时间,还是只考虑在@test方法中花费的时间


谢谢

在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.Resultjunit4.12


计算后,JUnit发布包含所有测试结果的“报告”。Eclipse或Idea等IDE附加到测试JUnit上,它们实现了可以解析和显示“报告”的
TestListener
。最后,来自IDE的侦听器将消息发送到IDE窗口,您可以看到测试结果和时间。

为什么不进行测试?在用
@Before
@Before
注释的方法中,执行一个长时间运行的任务,看看它是否影响结果。eclipse没有计算任何东西。junit测试运行程序正在执行计算。似乎在给定测试的持续时间中不包括
方法;在前一种方法中,测试的最终时间超过7秒。我认为这意味着所花费的时间也考虑了前后方法……不是吗?如果您想确切知道测试或秒表花费的时间,请在测试方法开始和结束时(不包括@Before和@After)使用System.currentTimeMillis()