Включение непокрытых файлов в отчеты Devel :: Cover - PullRequest
3 голосов
/ 26 мая 2010

У меня есть настройки проекта, такие как:

bin/fizzbuzz-game.pl
lib/FizzBuzz.pm
test/TestFizzBuzz.pm
test/TestFizzBuzz.t

Когда я запускаю покрытие по этому вопросу, используя

perl -MDevel::Cover=-db,/tmp/cover_db test/*.t

... Я получаю следующий вывод:

----------------------------------- ------ ------ ------ ------ ------ ------
File                                  stmt   bran   cond    sub   time  total
----------------------------------- ------ ------ ------ ------ ------ ------
lib/FizzBuzz.pm                      100.0  100.0    n/a  100.0    1.4  100.0
test/TestFizzBuzz.pm                 100.0    n/a    n/a  100.0   97.9  100.0
test/TestFizzBuzz.t                  100.0    n/a    n/a  100.0    0.7  100.0
Total                                100.0  100.0    n/a  100.0  100.0  100.0
----------------------------------- ------ ------ ------ ------ ------ ------

То есть: полностью открытый файл bin / fizzbuzz-game.pl не включен в результаты.

Как мне это исправить?

Ответы [ 2 ]

2 голосов
/ 26 мая 2010

Вы проверили документацию? Раздел Выбор файлов для покрытия представляется наиболее полезным. :) Похоже, что вам нужен вариант +select.

1 голос
/ 26 мая 2010

Я нашел обходной путь для этого.

Суть этой проблемы заключается в том, что непокрытый код в главном файле (fizzbuzz-game.pl) не включен в отчет о покрытии, поэтому общий процент неверен. Основная проблема заключается в том, что существенная логика находится в основном файле вместо тестируемых модулей. Это запах (не знаю, какой, но я почти уверен, что есть название "много логики в main ()").

Избавившись от этого запаха, например. Переместив весь субстандартный код из bin / fizzbuzz-game.pl в lib / FizzBuzzGame.pm, код можно теоретически протестировать и окончательно включить в тестовый запуск.

Отчет о покрытии после этого становится:

----------------------------------- ------ ------ ------ ------ ------ ------
File                                  stmt   bran   cond    sub   time  total
----------------------------------- ------ ------ ------ ------ ------ ------
lib/FizzBuzz.pm                      100.0  100.0    n/a  100.0    0.0  100.0
lib/FizzBuzzGame.pm                   75.0    n/a    n/a   75.0  100.0   75.0
Total                                 87.5  100.0    n/a   83.3  100.0   88.9
----------------------------------- ------ ------ ------ ------ ------ ------
...