PITest: конфигурация применяется неправильно

В моем файле pom есть следующее:

pom.xml

<reporting>
    <plugins>
        <plugin>
            <groupId>org.pitest</groupId>
            <artifactId>pitest-maven</artifactId>
            <version>1.1.8</version>
            <configuration>
                <targetClasses>
                    <param>com.myService.utility.*</param>
                </targetClasses>
                <reportsDirectory>/my-service/target</reportsDirectory>
                <targetTests>
                    <param>com.myService.utility.util.*</param>
                </targetTests>
                <timeoutConstant>5000</timeoutConstant>
                <excludeClasses>
                    <param>com.myService.utility.EmailImpl.java</param>
                    <param>com.myService.utility.Email.java</param>
                    <param>com.myService.utility.ValidationUtil.java.java</param>
                </excludeClasses>
                <avoidCallsTo>
                    <avoidCallsTo>org.apache.log4j</avoidCallsTo>
                    <avoidCallsTo>org.slf4j</avoidCallsTo>
                    <avoidCallsTo>org.apache.commons.logging</avoidCallsTo>
                </avoidCallsTo>
            </configuration>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

When I run the tests, the timeout doesn't seem to have changed from the default 3000, the classes in excludeClasses are still picked up, and its still complaining about configuration for log4j(althoguh it is log4j2 so this looks like my fault for not specifying). I can't find many examples in the PITest documentation or anywhere else, minus very simple examples using targetClasses and targetTests

РЕДАКТИРОВАТЬ: я попытался изменить теги отчетов, чтобы создать теги, и удалил раздел reportSets. Изменений по-прежнему нет; пакет утилиты src содержит 6 классов, из которых 3, которые я обрисовал в pom, следует исключить, а в тестовом пакете-аналоге есть 3 тестовых файла. репортер по-прежнему выбирает классы, которые нужно исключить, и показывает 0% покрытия линий и мутаций. Он также жалуется на конфигурации log4j, несмотря на значения AvoidCallsTo.


person jbailie1991    schedule 28.07.2016    source источник


Ответы (1)


Конфигурация должна быть указана в сборке/плагинах, а не в отчетах.

К сожалению, maven не выдает никаких ошибок, когда не может сопоставить XML с плагином.

Включенные/исключенные классы принимают глобусы против пакетов Java, а не исходные файлы, поэтому должны выглядеть примерно так: -

<excludeClasses>
    <param>com.myService.utility.EmailImpl</param>
    <param>com.myService.utility.Email</param>
    <param>com.myService.utility.ValidationUtil</param>
</excludeClasses>
person henry    schedule 29.07.2016
comment
Да, в конце концов я отказался от блока отчетов и переместил его в сборку, но он все еще не работает или, возможно, не работает так, как я предполагаю. Это может показаться глупым, но в приведенном выше примере формат должен исключать эти исходные файлы? - person jbailie1991; 29.07.2016
comment
На самом деле сотрите этот комментарий, этот формат сработал, теперь я могу фильтровать тестируемые классы. - person jbailie1991; 29.07.2016