1

Android プロジェクトで PIT (pitest.org) プラグインを使用したいと考えています。私は Android Maven プラグインを使用しており、かなり標準的な POM を使用しています。Android JAR は提供されたスコープで Maven に含まれており、SDK からスタブ化された JAR ではなく、実際のソースが含まれています。

Maven プラグインを介してコマンド ラインから PIT を実行すると失敗します。

[ERROR] Failed to execute goal org.pitest:pitest-maven:1.1.3:mutationCoverage (default-cli) on project easystat: Executi
on default-cli of goal org.pitest:pitest-maven:1.1.3:mutationCoverage failed: Coverage generation slave exited abnormall
y!
[ERROR]
[ERROR] Please copy and paste the information and the complete stacktrace below when reporting an issue
[ERROR] VM : Java HotSpot(TM) 64-Bit Server VM
[ERROR] Vendor : Oracle Corporation
[ERROR] Version : 25.25-b02
[ERROR] Uptime : 3804
[ERROR] Input ->
[ERROR] 1 : -Dclassworlds.conf=C:\Users\Tom\maven\bin\..\bin\m2.conf
[ERROR] 2 : -Dmaven.home=C:\Users\Tom\maven\bin\..
[ERROR] BootClassPathSupported : true
[ERROR]
[ERROR]
[ERROR] Please copy and paste the information and the complete stacktrace below when reporting an issue
[ERROR] VM : Java HotSpot(TM) 64-Bit Server VM
[ERROR] Vendor : Oracle Corporation
[ERROR] Version : 25.25-b02
[ERROR] Uptime : 3804
[ERROR] Input ->
[ERROR] 1 : -Dclassworlds.conf=C:\Users\Tom\maven\bin\..\bin\m2.conf
[ERROR] 2 : -Dmaven.home=C:\Users\Tom\maven\bin\..
[ERROR] BootClassPathSupported : true
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.pitest:pitest-maven:1.1.3:mutationCov
erage (default-cli) on project easystat: Execution default-cli of goal org.pitest:pitest-maven:1.1.3:mutationCoverage fa
iled: Coverage generation slave exited abnormally!

Please copy and paste the information and the complete stacktrace below when reporting an issue
VM : Java HotSpot(TM) 64-Bit Server VM
Vendor : Oracle Corporation
Version : 25.25-b02
Uptime : 3804
Input ->
 1 : -Dclassworlds.conf=C:\Users\Tom\maven\bin\..\bin\m2.conf
 2 : -Dmaven.home=C:\Users\Tom\maven\bin\..
BootClassPathSupported : true

Google グループに関する以前の議論では、JUnit の古いバージョンを含めるとこのようなエラーが発生する可能性があることが示唆されていました。Android JAR には 3.x JUnit ライブラリの 1 つが含まれているようです (Android チームに感謝します...)。この予感を確認または否定するために、PIT のクラスパスから Android JAR を除外したいと思います。とにかく、Surefire のテスト フェーズですでに除外しているためですが、そうするオプションはありません。

依存関係のスコープを変更せずに、提供された依存関係を PIT から除外する方法はありますか?

4

1 に答える 1

0

PIT は現在、依存関係を除外する方法を提供していません。テスト スコープでプロジェクトのすべての依存関係を使用します。

これは追加するのに賢明な機能です。気軽に問題を作成してください。

クラスパス/依存関係で Android jar の前に junit4 を配置することで、この問題を回避できる場合があります。

于 2015-01-22T12:42:41.353 に答える