上级项目失败,但如果单独执行则子项目运行正常

时间:2018-08-24 11:41:03

标签: gradlew pitest

我正在使用gradle包装器运行我的食物。我有定义最深的父build.gradle。我的子项目没有任何问题。如果我在单个项目上运行pitest,例如 gradlew clean:myproject:pitest 。然后最成功。但是,如果我尝试使用 gradlew clean pitest 从父级运行pitest。然后失败,并显示以下错误

> Task :pitest
4:57:34 PM PIT >> INFO : Verbose logging is disabled. If you encounter an 
problem please enable it before reporting an issue.
4:57:35 PM PIT >> INFO : Sending 0 test classes to minion
4:57:35 PM PIT >> INFO : Sent tests to minion
4:57:35 PM PIT >> SEVERE : Error generating coverage. Please check that your 
classpath contains JUnit 4.6 or above.
Exception in thread "main" org.pitest.util.PitError: Coverage generation 
minion exited abnormally. Please check the classpath.

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.152-b16
Uptime : 2390
Input ->
 1 : -Dfile.encoding=windows-1252
 2 : -Duser.country=US
 3 : -Duser.language=en
 4 : -Duser.variant
BootClassPathSupported : true


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.152-b16
Uptime : 2391
Input ->
 1 : -Dfile.encoding=windows-1252
 2 : -Duser.country=US
 3 : -Duser.language=en
 4 : -Duser.variant
BootClassPathSupported : true

    at 
org.pitest.util.Unchecked.translateCheckedException(Unchecked.java:20)
    at 

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:103)         

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:49)         

org.pitest.mutationtest.tooling.MutationCoverage.runReport(MutationCoverage.java:115)         在     org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:116)         在     org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:49)         

org.pitest.mutationtest.commandline.MutationCoverageReport.runReport(MutationCoverageReport.java:87)         

org.pitest.mutationtest.commandline.MutationCoverageReport.main(MutationCoverageReport.java:45)     由以下原因引起:org.pitest.util.PitError:覆盖生成小兵已退出     异常。请检查类路径。

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.152-b16
Uptime : 2390
Input ->
 1 : -Dfile.encoding=windows-1252
 2 : -Duser.country=US
 3 : -Duser.language=en
 4 : -Duser.variant
BootClassPathSupported : true

    at 

org.pitest.coverage.execute.DefaultCoverageGenerator.gatherCoverageData(DefaultCoverageGenerator.java:137)         

org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:87)

任何人都可以直接指出发生问题的原因,因为我使用的JUNIT 4.12大于错误中提到的4.6。

1 个答案:

答案 0 :(得分:0)

根据我的经验,尽管子模块中没有测试,但仍需要向Junit添加显式依赖项。

对我来说,此问题已解决:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
</dependency>