Java 带卡尺的Junit设置

Java 带卡尺的Junit设置,java,junit,caliper,Java,Junit,Caliper,我正在尝试用junit封装代码,以便性能测试作为单元测试的一部分运行。这似乎是可行的-卡尺测试实际上运行,但没有成功退出。设置这些东西的正确方法是什么 import static org.junit.Assert.*; import org.junit.Test; import com.google.caliper.Runner; import com.google.caliper.SimpleBenchmark; public class CaliperBenchmarkExample

我正在尝试用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);
    }
}
import static org.junit.Assert.*;
导入org.junit.Test;
导入com.google.caliper.Runner;
导入com.google.caliper.SimpleBenchmark;
公共类CaliperBenchmarke示例扩展了SimpleBenchmark{
公共无效时间纳米时间(int reps){
对于(int i=0;i
没有机制像JUnit测试那样运行卡钳测试。这样做是复杂的,因为卡钳会派生一个子进程来隔离基准测试。卡尺基准往往运行几秒钟,这可能会损害测试性能


您可能想要调查一个持续运行Caliper基准测试的开源项目。

第一个建议
assertTrue(true)
,它没有任何意义。阿约兹维克:这就是为什么我把它包括进去——我希望它能通过,但在我的maven测试中它似乎没有通过。也许问题是Runner在不同的线程中被调用?或者运行人员再次调用testPerformance?@user779:
assertTrue(true)
毫无意义,这是一个不可操作的操作,只会帮助您
/**/
。失败的断言抛出,传递的断言根本不做任何事情。Booo。如果我可以通过简单地将它们声明为测试来从IDE运行Caliper基准测试,那就太好了。