2015-01-21 2 views
1

Android 프로젝트에서 PIT (pitest.org) 플러그인을 사용하고 싶습니다. Android Maven 플러그인을 사용하고 있으며 표준 POM이 있습니다. Android JAR은 Maven에 의해 범위에 제공된 범위에 포함되며 SDK의 스텁 된 JAR이 아닌 실제 소스를 포함합니다.PIT를 실행할 때 classpath에서 제공된 종속성을 제외합니다.

[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의 이전 버전을 포함하여이 같은 오류가 발생할 수 있음을 제안하고, 안드로이드 같습니다 메이븐 플러그인을 통해 명령 줄에서 PIT 실행

실패 JAR에는 3.x JUnit 라이브러리 중 하나가 포함되어 있습니다 (감사합니다, Android 팀 ...). 이 직감을 확인하거나 부인하기 위해 Pure의 클래스 패스에서 Android JAR을 제외하고 싶습니다. 이미 확실한 테스트 단계에서 이미 수행했기 때문에 Android JAR을 제외시킬 수는 있습니다.하지만 그렇게 할 수있는 옵션이 없습니다.

종속성의 범위를 변경하지 않고도 제공된 종속성을 PIT에서 제외 할 수 있습니까?

답변

0

PIT는 현재 종속성을 필터링하는 방법을 제공하지 않으며 테스트 범위에서 프로젝트의 모든 종속성을 사용합니다.

추가하는 것이 현명한 기능입니다. 문제가 생길 수 있습니다.

클래스 경로/종속성에 android jar 앞에 junit4를 배치하면이 문제를 해결할 수 있습니다.

+0

감사합니다 Henry, GitHub에서 해당 문제를 열어 추적했습니다. 현재 해결 방법은 충돌하는 deps를 기본적으로 활성화되어있는 프로필로 옮기고 PIT를 실행할 때 다른 프로필을 지정하는 것입니다. –

관련 문제