当Pitest找不到测试类时的解决方法

9

看起来这是一个非常普遍的问题,我个人至少遇到过几次。

一些主要原因包括:

然而,今天我遇到了一个新的0个测试被发现的情况,我很难解决。让我们考虑这个项目:https://github.com/bonnyfone/vectalign
这是一个小项目,只包括一个测试类:

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

我已经将pitest添加到pom.xml中:

<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个回答

3
PITest未找到我的类或测试类,因为我没有将它们放在一个包中。一旦我把它们放在包里,一切都很好。我猜你也可以手动指定类和测试类的位置。 引用这个(现已删除的)链接问题的答案: “我刚刚花了很多时间看着同样的消息” “未发现变异。这可能意味着提供的类路径或过滤器存在问题。” 我的问题很简单:我用Maven在IntelliJ中创建了几个测试项目,但我没有包。我使用默认包,并且每次PITest失败。PITest有一个插件,如果您指定类和测试类,则可以与默认包一起使用。但是所有文档都说它应该默认工作。详细输出甚至显示PITest正在找到正确的项目文件夹,但它仍然无法正常工作。Henry Cole甚至足够好(PITest的开发人员)查看我的POM.xml文件并确认它看起来不错。 总之,如果将Java代码放入包中,PITest运行得很好。

0

我遇到了相同的问题。对我来说,指定精确的测试包有帮助。在你的情况下,也许你可以添加:

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

当然,这是一种相当糟糕的解决方法。也许有人知道问题的根本原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,