junit
テキストファイルからテストデータを読み取り、実行時にテストを作成して実行するカスタムクラスローダーがあるとします。ランナーはテストクラスを使用しません。
surefire
今度はmavenプラグインで実行したいと思います。surefire
つまり、プラグイン「execution」のパラメータとしてランナーを指定したいと思いますpom.xml
。
それをしてもいいですか?
いいえ。私が知る限りRunner
、maven-surefire-pluginでクラスを指定する方法はありません。ただし、単一のテストクラスを作成し、を使用@RunWith(YourRunner.class)
してカスタムランナーで実行できるようにする必要があります。
Runner
これは、 sの使用目的がプロジェクトレベルではなく、テストごとであるためだと思います。さまざまなランナーを組み合わせて使用するプロジェクトを作成できます。たとえば、Springベース、同時実行、JUnit3での実行、JUnit4での実行などです。
達成したいことによっては、カスタムを使用してテストの動作にグローバルに影響を与えることができる場合がありますRunListener
。Maven Surefireプラグインを使用して構成する方法は次のとおりです。http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html#Using_custom_listeners_and_reporters
(私は同様の質問に対して同じ応答を投稿しました。つまり、@ RunWithの代わりにJUnitランナーをグローバルに設定します)
私のプロジェクトでは、プラグインexec-maven-pluginを使用して同じタスクを解決します
特別なパラメーターを使用してjunitテストを実行するカスタムランナーがあります。mavenコマンドでランナーを実行します:mvn test -Dparam1 = value1 -Dparam2 = value2 -Dparam3 = value3
pom.xmlの場合:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.example.domain.MyMainClass</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>