ここで奇妙な問題が発生しましたが、その理由はわかりませんでした:
コマンドラインで maven (および Java 11) を使用して pitest を使用すると、期待どおりに動作しますが、宣言型パイプラインを介して Jenkins-Server で実行すると、エラーが発生します。
私のmaven pomの一部:
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.8</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
私のJenkinsfileの一部:
stage('MutationTesting')
{
steps
{
bat 'mvn --batch-mode org.pitest:pitest-maven:mutationCoverage'
}
}
その前に、次の Maven コマンドがパイプラインから呼び出されます。
mvn --batch-mode clean
mvn --batch-mode compile
mvn --batch-mode コンパイラ:testCompile surefire:test -Dmaven.test.failure.ignore=true
コマンドラインでこれらのコマンドを正確に呼び出すと、pitest は完全に機能します。
ロギング結果を比較すると、ほぼ同じです。
コマンドラインからのログ出力:
PIT >> FINE : 利用可能な最大メモリは 3609 mb です
PIT >> FINE : MINION : PITエージェントのインストール
PIT >> INFO : ミニオンに 13 個のテスト クラスを送信しています
PIT >> INFO : ミニオンにテストを送信しました
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : 親から 13 個のテスト クラスが必要です
PIT >> FINE : テストクラスを受けました
PIT >> INFO : 環境チェック中
PIT >> INFO : ミニオン : 08:51:20 PIT >> INFO : Found 1 tests
PIT >> INFO : MINION : 08:51:20 PIT >> INFO : 依存関係分析により、潜在的なテストの数が 0 減りました
ピット >> 情報: ミニオン: 08:51:20 ピット >> 情報: 1 つのテストを受信
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : 1台走行中
PIT >> INFO : MINION : 08:51:20 PIT >> FINE : テストのカバレッジを収集中 [testClass=de.test.Tests, name=creation()]
PIT >> FINE : カバレッジ ジェネレーター ミニオンが正常に終了しました
PIT >> INFO : カバレッジを 0 秒で計算。
PIT >> FINE : カバレッジ計算後の使用メモリ 42 mb
PIT >> FINE : カバレッジ計算後の空きメモリ 201 mb
[…ミューテーション出力カット]
Jenkins-Pipeline からのログ出力:
PIT >> FINE : 利用可能な最大メモリは 1813 mb です
PIT >> FINE : MINION : PITエージェントのインストール
PIT >> INFO : ミニオンに 13 個のテスト クラスを送信しています
PIT >> INFO : ミニオンにテストを送信しました
PIT >> INFO : MINION : 08:46:28 PIT >> FINE : 親から 13 個のテスト クラスが必要です
PIT >> FINE : テストクラスを受けました
PIT >> INFO : 環境チェック中
PIT >> INFO : ミニオン : 08:46:29 PIT >> INFO : Found 1 tests
PIT >> INFO : MINION : 08:46:29 PIT >> INFO : 依存関係分析により、潜在的なテストの数が 0 減りました
ピット >> 情報: ミニオン: 08:46:29 ピット >> 情報: 1 つのテストを受信
PIT >> INFO : ミニオン : 08:46:29 PIT >> FINE : 1台走行中
PIT >> INFO : MINION : 08:46:29 PIT >> FINE : テストのカバレッジを収集中 [testClass=de.test.Tests, name=creation()]
PIT >> FINE : カバレッジ ジェネレーター Minion が正常に終了しました PIT >> INFO : 1 秒で計算されたカバレッジ。PIT >> FINE : カバレッジ計算後の使用メモリ 43 mb PIT >> FINE : カバレッジ計算後の空きメモリ 177 mb PIT >> INFO : Created 0 Mutation test units [INFO] ------------- -------------------------------------------------- --------- [情報] ビルド失敗 [情報] --------------------------------- --------------------------------------- [情報] 合計時間: 3.644 秒 [情報]終了時刻: 2019-06-06T08:46:29+02:00 [INFO] ------------------------------- ----------------------------------------- [エラー] 目的の組織を実行できませんでした。プロジェクト multiuploader の pitest:pitest-maven:1.4.8:mutationCoverage (default-cli): ゴール org.pitest:pitest-maven:1.4.8:mutationCoverage の default-cli の実行に失敗しました: 突然変異は見つかりませんでした。これはおそらく、指定されたクラスパスまたはフィルターに問題があることを意味します。[エラー] 参照詳細については、 http://pitest.orgをご覧ください。
したがって、環境に違いがあるとしか思えませんでしたが、どちらが違いますか? それとも、ピテストのバグですか?