Питест исключен Методы maven

Я пытаюсь исключить PIT из мутации каких-либо методов ввода-вывода, таких как «закрыть» и «сбросить». Вот моя конфигурация Maven:

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.1.3</version>
    <configuration>
        <targetClasses>
            <param>my.package.*.*</param>
        </targetClasses>
        <targetTests>                   
            <param>my.package.*.*</param>
        </targetTests>
        <excludedClasses>
            <param>my.generated.*</param>
            <param>**.*IT</param>                                
        </excludedClasses>
        <excludedMethods>
            <param>close</param>
            <param>flush</param>
        </excludedMethods>
        <reportSets>
            <reportSet>
                <reports>
                    <report>report</report>
                </reports>
            </reportSet>
        </reportSets>
    </configuration>
</plugin>

Исключенные классы, похоже, работают, но не исключенные методы. то есть результат PIT по-прежнему говорит, что удаление вызовов «закрыть» и «сбросить» не влияет на результат теста.

Вопрос: что я упускаю?


person ric    schedule 10.06.2016    source источник


Ответы (1)


Исключенные методы используются, чтобы избежать создания мутантов внутри методов, которые соответствуют предоставленному списку имен.

Что, я думаю, вы хотите сделать, так это прекратить создавать мутантов, которые удаляют вызовы методов закрытия и сброса. Это можно сделать с помощью параметра avoidCallsTo.

person henry    schedule 11.06.2016
comment
Спасибо, это именно то, чего я хотел добиться. Однако, когда я попробовал следующее: ‹avoidCallsTo› ‹avoidCallsTo›java.util.Scanner.close‹/avoidCallsTo ‹avoidCallsTo›java.util.logging‹/avoidCallsTo› ‹/avoidCallsTo› запись журнала работает, но запись сканера не 'т. Любые идеи? - person ric; 24.06.2016
comment
Лучше ли добавлять такие методы, как close и flush, в avoidCallsTo, или нам следует каким-то образом изменить наши тесты, чтобы они терпели неудачу, если они не вызываются? - person ArtOfWarfare; 15.04.2021
comment
@ArtOfWarfare на самом деле невозможно ответить на этот вопрос, зависит от вашей кодовой базы. Если важно, чтобы ваши тесты подтверждали, что вызов close вызывается, используйте AvoidCallsTo. Если да, то не добавляйте его. На самом деле никогда не бывает единственной лучшей практики для чего-либо, каждая ситуация отличается. - person henry; 16.04.2021