2013-05-02 21 views
10

Próbuję użyć narzędzia Google Caliper do przetestowania prostego kodu. Korzystam z przykładów na ich stronach internetowych. Oto co zrobiłem do tej pory:Google Caliper: Problemy z rozpoczynaniem pracy (testowanie Java)

  1. Pobrano JAR Suwmiarka dodaje go do mojego projektu Netbeans
  2. Po trudności, Pobrałem JUnit.jar i hamcrest.jar. Wciąż nie działa.

Oto mój kod:

import com.google.caliper.Benchmark; 

public class Benchmark1 extends Benchmark { 

    public void timeNanoTime(int reps) { 
     for (int i = 0; i < reps; i++) { 
     System.nanoTime(); 
     } 
    } 

} 

mam rozszerzenie Benchmark ponieważ przy próbie przedłużenia „SimpleBenchmark” jak na ich stronie internetowej to mówi mi, że nie może znaleźć SimpleBenchmark. Następnie, w mojej głównej metodzie, tworzę nowy Benchmark1(), mając nadzieję, że coś się stanie. Nic nie robi. To jest kod w mojej głównej klasie.

Benchmark1 test = new Benchmark1(); 
test.timeNanoTime(10); 

wiem, że to jest bez wątpienia prosty błąd, ale nie mogę, pomimo znacznie Googling, dowiedzieć się, gdzie idę źle. Kod kompiluje się, ale nie działa.

EDIT: mam powiedzieć biegnę Netbeans na Windows 7 z Suwmiarka 1,0

Odpowiedz

19

To prawda; dokumentacja jest żałośnie nieaktualna i niekompletna. Pracuję nad tym. W międzyczasie, oto, co sprawi, że twój benchmark będzie działał.

Twoja główna metoda powinna delegować do CaliperMain, a nie bezpośrednio do testu porównawczego. Wypróbuj

public static void main(String[] args) { 
    CaliperMain.main(Benchmark1.class, args); 
} 

Windows będzie problemem. W szczególności największym blokerem będzie issue 215.

+8

Windows nie jest obsługiwany? WTF Proszę zaksięgować to jako duże czerwone ogłoszenie na stronie głównej projektu. – Thorben

+2

Obecna wersja programu Caliper nie obsługuje systemu Windows z powodu błędu. Wsparcie zostanie zwrócone, gdy pracujemy nad błędami, ale żaden z programistów nie ma maszyn Windows, więc zwrot jest powolny. Co więcej, system Windows ma niższy priorytet, ponieważ jest mniej popularnym środowiskiem produkcyjnym i nieco słabym środowiskiem testowania z powodu niedokładności w zegarach (podobny problem z OS X). To powiedziawszy, ponieważ ludzie rozwijają się w systemie Windows, nadal celem jest sprawienie, by działało. Prosimy o zaznaczenie tej kwestii (i wszelkich innych), ponieważ uważamy, że jest to czynnik priorytetowy w pracy. – gk5885

+1

Miło słyszeć, że zespół nad tym pracuje. Nie zdawałem sobie sprawy, że zacisk jest w jego przedpremierowym wydaniu. To było trochę frustrujące, gdy usłyszałem, że okna nie działają z suwmiarką po spędzeniu czasu na budowaniu benchmarków i doprowadzaniu rzeczy do działania. Podzielam opinię, że Linux jest mądrzejszy w maszynach produkcyjnych, ale czasami kodujesz na swoim laptopie. Większość laptopów ma system Windows i specjalne oprogramowanie od producenta, od którego zależy. Dzięki temu wygodniej jest korzystać z systemu Ready to go. Być może Twoi programiści mogą uzyskać system Windows z Dreamsparku lub gdzie indziej. – Thorben