Ошибка Maven PITest Не найден плагин для префикса org.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

person Mateus99    schedule 19.11.2019    source источник
comment
Вам следует попробовать использовать mvn org.pitest:pitest-maven:mutationCoverage. Я бы также использовал более свежую версию плагина pitest-maven ... 1.4.10 ...   -  person khmarbaise    schedule 20.11.2019
comment
Я написал статью, объясняющую, как использовать тест на мутацию и PIT, которые могут вам помочь: pedrorijo.com/blog/intro-mutation/#mutation-testing-for-java   -  person pedrorijo91    schedule 20.11.2019
comment
и если вы хотите увидеть, как настроить настоящий живой проект с несколькими модулями maven, возьмите в качестве примера этот: github.com/feedzai/feedzai-openml   -  person pedrorijo91    schedule 20.11.2019
comment
большое спасибо, @khmarbaise !! Это сработало с этой командой. Еще один вопрос, я выполнил его, и все сработало нормально, но в моей целевой папке нет файла, чтобы увидеть графический интерфейс результатов, есть идеи, почему? @ pedrorijo91   -  person Mateus99    schedule 20.11.2019
comment
Где-то должен быть HTML-файл, который обычно содержит результат в target / site? Вы уже заглянули в это?   -  person khmarbaise    schedule 20.11.2019
comment
Есть цель папки, но внутри нее нет ничего, даже файла html. Может это потому, что все мутанты погибли? Или все равно нужно сгенерировать html?   -  person Mateus99    schedule 20.11.2019


Ответы (1)


Вы должны использовать плагин вот так.

<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

person PythonLearner    schedule 19.11.2019
comment
Я просто добавил зависимость, как вы сказали, но появляется та же ошибка, кстати, последняя версия - 1.4.10, я исправил ее, но остается прежней, следует ли мне редактировать вопрос с текущим pom.xml, чтобы вы могли видеть, как это сейчас? Мне действительно нужно как можно скорее сделать эту работу - person Mateus99; 19.11.2019
comment
Отправьте, пожалуйста, полный файл pom.xml, чтобы я мог попробовать со своей стороны. - person PythonLearner; 19.11.2019
comment
Я только что обновил ответ, можете попробовать. Обновите версию 1.4.10 вместо последней - person PythonLearner; 19.11.2019
comment
@DebadattaMishra Использование плагина maven в качестве зависимости просто неправильно. Проблема просто в неправильном вызове плагина из командной строки. - person khmarbaise; 20.11.2019
comment
Не могли бы вы сказать мне, как правильно назвать это в командной строке? @khmarbaise - person Mateus99; 20.11.2019
comment
@khmarbaise Сэр, я обновил ответ, на самом деле текущая версия 1.4.10 - person PythonLearner; 20.11.2019