Maven Exec Pluginでこれを行うことができます。私のプロジェクトでは、mavenコマンドmvn compile -P benchmarks
で実行できるベンチマークプロファイルを作成することにしました。あなたの場合」、代わり
<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>
:このような何かを設定するには
は、あなたが<classpathScope>
タグを使用してテストとしてクラスパスの範囲を指定して、あなたのpom.xml
に次の線に沿って何かを追加することができますキャリパーのための多くのオプションを指定したいと、おそらく<arguments>
タグを使用する方が簡単ですd次の
<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>
詳細設定オプション(LI ke -Cinstrument.allocation.options.trackAllocations
上記)はhereであり、より多くの実行時オプション(上記--instrument
など)はhereです。あなたは、Eclipse平方メートルMavenプラグインを使用している場合
次に、あなたのプロジェクトフォルダを右クリックし、Run as... -> Maven Build...
を選択してProfiles
入力ボックスにGoals
入力ボックスとbenchmarks
でclean install
のようなものを入力してRun
をクリックしてすることができますEclipseコンソールに出力が表示されます。
キャリパーのローカルスナップショットビルドは、最新のAPIを利用するためにこの投稿時点で推奨されているgit clone https://code.google.com/p/caliper/
を使用してソースをチェックアウトすることに注意してください。
Eclipse実行コンフィギュレーションでは、自分のクラスパスのための "Maven Dependencies"が表示されます。テスト依存関係と非依存関係を分離しているようには見えません。 Caliperが実際に含まれていることを確認しましたか? – gk5885
@ gk5885では、パッケージエクスプローラで使用できます。パッケージパスは、 'JUnit'タイプのコンフィグレーションを実行しているときにクラスパスで使用できますが、 'Javaアプリケーション'タイプのコンフィグレーションを実行しているときはクラスパスでは使用できません。 –
私はあなたのシナリオを完全に理解していません。特に、 "クラスパスにテスト依存関係のある任意のクラスを実行してください"。 CaliperMainが主な方法で通常行っていることとまったく同じようにJUnitテストを作成して実行できますか? – Morfic