我有一个庞大的项目,我正在用Pitest测试变异测试。该项目采用OSGi格式,并且所有模块均分开。我有这个结构:
| -1.myProgramm-parent
| -pom.xml
| -2.myProgramm.module1
| -pom.xml
| -2.myProgramm.module1.Test
| -pom.xml
| -3.myProgramm.module2
| -pom.xml
| -3.myProgramm.module2.Test
| -pom.xml
... 等等。
现在,我从1.myProgramm-parent
所需的所有Pitest配置(来自pitest.org的官方网站)中放入pom.xml。 targetClasses
和targetTests
在2.myProgramm.module1.Test
的pom.xml中,我需要使用它。
Pitest查找所有7个测试类。并发送给他们。那么gathering for test description
也可以。 Coverage generator Minion excited ok.
然后:created 0 mutation test units.
并显示了构建失败。 No mutations found.
我已经尝试过在pitest.org上显示的所有可能的注释,例如:targetClasses
,targetTests
和additionalClasspathElements
。
我怎么能说testClasses在这个文件夹2.myProgramm.module1.Test
中,在这里我要在pom.xml中设置targetClasses
,targetTests
。但是要封装的普通javaClass位于此包中:2.myProgramm.module1
我怎么知道,离开您的测试文件夹并进入文件夹?
我还使用普通的javaClasses给出了该文件夹的纯路径,但是没有反应。 :(
你有想法吗?
附言这不是我的程序。我没写我只是在进行测试。我已经有了Maven和Gradle的其他11个程序。我全都给小黄人。但是,这真是太痛了!啊!
最佳答案
如果您正在处理多模块项目,则需要使用pitmp插件(https://github.com/STAMP-project/pitmp-maven-plugin)。
这是因为PIT本身仅会突变与测试在同一模块中定义的类。相反,pitmp将对模块的所有类别执行测试。在上面的链接中提供了更多详细信息。