2012-03-09 2 views
4

Я пытаюсь обернуть код суппорта в junit, чтобы тесты производительности выполнялись как часть моих модульных тестов. Кажется, что работает - тест суппорта фактически выполняется, но он не выходит успешно. Каков правильный способ установить этот материал?Junit setup с суппортом

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); 
    } 
} 
+1

Первое предложение 'assertTrue (true)', оно не имеет смысла. Всегда проходите. –

+0

ajozwik: вот почему я включил его - я бы ожидал, что он пройдет, но, похоже, он не добирается до него – naumcho

+0

В прошлом для теста maven. Может быть, проблема в том, что Runner вызывается в другом потоке? Или повторный вызов caller caller? –

ответ

4

Не существует механизма для запуска испытаний суппорта в качестве тестов JUnit. Делать это сложно из-за того, что суппорт выдвигает дочерний процесс, чтобы изолировать ваши тесты. И тесты Caliper имеют тенденцию работать в течение нескольких секунд, что может повредить производительности теста.

Возможно, вы захотите провести исследование caliper-ci, проекта с открытым исходным кодом, который непрерывно запускает тесты Caliper.

+0

Буо. Было бы неплохо, если бы я смог запустить тесты Caliper из IDE, просто объявив их в качестве тестов. –

Смежные вопросы