Maven PITest错误“在当前项目和插件组中找不到前缀为“ org.pitest”的插件”

时间:2019-11-19 18:53:25

标签: java maven unit-testing mutation-testing pitest

我需要使用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

1 个答案:

答案 0 :(得分:0)

您必须使用这样的插件。

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.4.10</version>
    <configuration>
        <targetClasses>
            <param>com.mateus*</param>
        </targetClasses>
        <targetTests>
            <param>com.mateus*</param>
        </targetTests>
    </configuration>
</plugin>

EIDT: 使用版本1.4.10而不是最新版本 请参阅下面的参考链接。

https://pitest.org/quickstart/maven/

它在Maven Central中也可用,您可以检查此链接。

https://search.maven.org/artifact/org.pitest/pitest-maven/1.4.10/maven-plugin