4

我正在尝试将卡尺代码包装在 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);
    }
}
4

1 回答 1

4

没有将 Caliper 测试作为 JUnit 测试运行的机制。这样做很复杂,因为 Caliper 派生一个子进程来隔离您的基准测试的方式。Caliper 基准测试往往会运行几秒钟,这可能会损害测试性能。

您可能想研究caliper-ci,这是一个持续运行 Caliper 基准测试的开源项目。

于 2012-03-11T13:44:32.260 回答