【发布时间】:2023-03-04 09:01:01
【问题描述】:
我需要使用 PITest 进行突变测试,但我很难通过 Maven 安装它,当我尝试运行 PIT 来执行突变和测试用例时,我在 cmd 中收到此错误:
"在当前项目中没有找到前缀 'org.pitest' 的插件 并在插件组中”
有人可以帮我解决这个问题吗?
我的代码:
package com.mateus;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Codigo {
public boolean verify(String word){
String regex = "^[a-zA-Z0-9_$]+$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(word);
if(word.substring(0, 1).matches("[0-9]")){
return false;
}
return matcher.matches();
}
}
我的测试:
package com.mateus;
import static org.junit.Assert.*;
import org.junit.Test;
public class CodigoTest {
Codigo c = new Codigo();
@Test
public void test() {
assertEquals(true, c.verify("teste"));
}
@Test
public void test2() {
assertEquals(false, c.verify("1teste"));
}
@Test
public void test3() {
assertEquals(false, c.verify("tes@te"));
}
}
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mateus</groupId>
<artifactId>MavenMutacao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-rc-1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.3</version>
<configuration>
<targetClasses>
<param>com.mateus*</param>
</targetClasses>
<targetTests>
<param>com.mateus*</param>
</targetTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
这是出现在我的 cmd 上的错误:
C:\Users\mateu\eclipse-workspace\MavenMutacao>mvn org.pitest:pitest maven:mutationCoverage
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml (20 kB at 14 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml (14 kB at 9.3 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.303 s
[INFO] Finished at: 2019-11-19T16:39:59-02:00
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'org.pitest' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\mateu\.m2\repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException
【问题讨论】:
-
您应该尝试使用
mvn org.pitest:pitest-maven:mutationCoverage。我还会使用更新版本的 Pitest-maven 插件...1.4.10 ... -
我写了一篇文章解释如何使用变异测试和 PIT 可能对你有所帮助:pedrorijo.com/blog/intro-mutation/#mutation-testing-for-java
-
如果你想了解如何使用 maven 多模块设置一个真实的实时项目,以这个为例:github.com/feedzai/feedzai-openml
-
非常感谢@khmarbaise!它与该命令一起使用。还有一个问题,我执行了它并且一切正常,但是我的“目标”文件夹中没有文件可以查看结果的图形界面,知道为什么吗? @pedrorijo91
-
应该有一个 html 文件,它通常在 target/site 中包含结果?你看过了吗?
标签: java maven unit-testing mutation-testing pitest