我试图将卡尺代码包装在junit中,以便性能测试作为我的单元测试的一部分运行。似乎可以正常使用-卡尺测试实际上可以运行,但是无法成功退出。设置此内容的正确方法是什么?
import static org.junit.Assert.*;
import org.junit.Test;
import com.google.caliper.Runner;
import com.google.caliper.SimpleBenchmark;
public class CaliperBenchmarkExample extends SimpleBenchmark {
public void timeNanoTime(int reps) {
for (int i = 0; i < reps; i++) {
System.nanoTime();
}
}
@Test
public void testPerformance() {
Runner.main(CaliperBenchmarkExample.class, new String[] { });
assertTrue(true);
}
}
最佳答案
没有将Caliper测试作为JUnit测试运行的机制。这样做很复杂,因为Caliper派生一个子进程来隔离基准测试的方式。卡尺基准测试可能会持续运行几秒钟,这可能会损害测试性能。
您可能想研究caliper-ci,这是一个连续运行Caliper基准测试的开源项目。