2

ここで奇妙な問題が発生しましたが、その理由はわかりませんでした:

コマンドラインで 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をご覧ください。

したがって、環境に違いがあるとしか思えませんでしたが、どちらが違いますか? それとも、ピテストのバグですか?

4

1 に答える 1