Итак, мутант сбежал.Что теперь? - PullRequest
0 голосов
/ 28 сентября 2019

Мне только что удалось запустить тестирование мутаций в первый раз.Моя обычная среда тестирования - Codeception , но на момент написания статьи она не совместима с мутационным тестированием (хотя я считаю, что работа над ней ведется, и она не за горами).Я использую PHPUnit и Инфекция , ни один из которых не кажется простым для понимания, как использовать.

Мой набор тестов породил десять мутантов.Девять были убиты, а один сбежал.Однако я не знаю, какую часть кода или тестов необходимо улучшить, чтобы убить финального мутанта.

Как получить информацию о том, какой код позволил мутанту сбежать?

1 Ответ

0 голосов
/ 29 сентября 2019

Я нашел в этом блоге то, что не смог найти в Документация инфекции : результаты сохраняются в infection.log.

Файл журнала выглядит следующим образомthis:

Escaped mutants:
================


1) <full-path-to-source-file>.php:7    [M] ProtectedVisibility

--- Original
+++ New
@@ @@
 use stdClass;
 trait HiddenValue
 {
-    protected function hidden_value($name = null, $value = null)
+    private function hidden_value($name = null, $value = null)
     {
         static $data = [];
         $keys = array_map(function ($item) {

Timed Out mutants:
==================

Not Covered mutants:
====================

Это говорит о том, что мутация изменила видимость protected на private и что в результате ни один из тестов не прошел.Если это важно, теперь я могу либо изменить код, либо написать другой тест для этого случая.

Теперь, когда я нашел это, я искал на веб-сайте Infection для infection.log и нашел --show-mutations или -s, который выведет сбежавших мутантов на консоль во время работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...