当pitest找不到测试类

时间:2018-03-08 12:53:19

标签: java maven testing pitest

这似乎是一个非常普遍的问题,我个人至少偶然发现了几次。

一些主要原因是:

然而,今天我偶然发现了一个新的0测试案例,我很难解决。让我们考虑一下这个项目:https://github.com/bonnyfone/vectalign 这是一个小项目,包括一个唯一的测试类:

src
 |
 +- main
 |   |
 |   ...
 |
 +- test
     |
     +- java
          |
          +- VectAlignTest.java

我在pom.xml

添加了pitest
<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.3.2</version>
</plugin>

我运行命令mvn clean test org.pitest:pitest-maven:mutationCoverage。 虽然测试运行得很好,但由于某些原因,pitest无法找到它们:

12:23:16 PM PIT >> INFO : MINION : 12:23:16 PM PIT >> INFO : Found  0 tests
...
================================================================================
- Statistics
================================================================================
>> Generated 910 mutations Killed 0 (0%)
>> Ran 0 tests (0 tests per mutation)

您可以在此处找到完整的pom.xmlhttps://pastebin.com/F28ZpcMk
以下是mvn clean test org.pitest:pitest-maven:mutationCoverage的完整输出:https://pastebin.com/tWHgq43a

现在我的问题是,在这个特殊情况下出了什么问题? pitest如何确定哪些是测试类?

非常感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

我面临着同样的问题。对我来说,指定确切的测试包有帮助。在你的情况下,你可以添加:

<configuration>
    <targetTests>
      <param>VectAlignTest*</param>
    </targetTests>
</configuration>

但当然,这是一个非常肮脏的解决方法。也许有人知道问题的根本原因。

答案 1 :(得分:0)

我刚在这个链接上添加了一个解决方案:

pitest not running correctly

总而言之,PITest没有找到我的类或测试类,因为我没有在包中。一旦我将它们放入包中,一切都很顺利。我怀疑你也可以手动指定类和测试类位置。