Powinieneś być w stanie to zrobić z Maven Exec Plugin. Do mojego projektu wybrałem profil testowy, który można uruchomić za pomocą komendy maven: mvn compile -P benchmarks
.
Aby skonfigurować coś takiego, można dodać coś wzdłuż linii następujących do pom.xml
, określając zakres ścieżce klasy jako testowym pomocą <classpathScope>
tag:
<profiles>
<profile>
<id>benchmarks</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<commandlineArgs>com.stackoverflow.BencharkClass,com.stackoverflow.AnotherBenchmark</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Ewentualnie, jeśli” chciałbym, aby określić wiele opcji dla zacisku, to chyba łatwiej użyć <arguments>
tagi:
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<arguments>
<argument>com.stackoverflow.BencharkClass</argument>
<argument>--instrument</argument>
<argument>runtime</argument>
<argument>-Cinstrument.allocation.options.trackAllocations=false</argument>
</arguments>
</configuration>
</execution>
</executions>
więcej opcji konfiguracyjnych (Li ke -Cinstrument.allocation.options.trackAllocations
powyżej) można znaleźć here i więcej opcji środowiska wykonawczego (takich jak --instrument
powyżej) można znaleźć here.
Następnie, jeśli używasz wtyczki Eclipse m2 Maven, można kliknąć prawym przyciskiem myszy na folderze projektu i wybierz Run as... -> Maven Build...
i wprowadzić coś takiego clean install
w polu Goals
wejściowego i benchmarks
w polu Profiles
wejściowego i kliknij Run
i cię powinien zobaczyć dane wyjściowe w konsoli Eclipse.
Ważne jest, aby pamiętać, że użyłem lokalnej wersji migawkowej Suwmiarki, sprawdzając źródło, używając git clone https://code.google.com/p/caliper/
, co jest zalecane w czasie tego posta, aby móc skorzystać z najnowszego interfejsu API.
Konfiguracja środowiska Eclipse po prostu wyświetla "Zależności Mavena" dla mojej ścieżki klas. Nie wydaje się, aby oddzielić zależności testowe od niebadawczych. Czy sprawdziłeś, że Caliper jest rzeczywiście włączony? – gk5885
@ gk5885, jest dostępny w Eksploratorze pakietów, dostępnym w ścieżce klasy podczas uruchamiania konfiguracji typu "JUnit", ale niedostępnej w ścieżce klasy podczas uruchamiania konfiguracji typu "Aplikacja Java". –
Nie jestem pewien, czy w pełni rozumiem Twój scenariusz, szczególnie "uruchom dowolną klasę z zależnościami testowymi w ścieżce klas". Nie możesz po prostu stworzyć i uruchomić testu JUnit, który zrobiłby dokładnie to, co CaliperMain normalnie zrobiłby w swojej głównej metodzie? – Morfic