Как получить покрытие кода скрипта Perl CGI при его выполнении Selenium? - PullRequest
4 голосов
/ 25 мая 2010

Я использую Eclipse EPIC IDE для написания некоторых сценариев Perl CGI, которые вызывают некоторые модули Perl, которые я также написал. EPIC IDE позволяет мне настраивать Perl CGI «запустить конфигурацию», которая запускает мой CGI-скрипт. А потом я настроил Selenium, и один из моих файлов модульного теста запускает несколько команд Selenium, чтобы выполнить мой сценарий cgi через все его шаги. Но отчет о покрытии из диспетчеризации Module :: Build 'testcover' не показывает, что какой-либо код моего модуля был выполнен. Он был выполнен моим сценарием cgi, но я предполагаю, что сценарий CGI был запущен вручную и не был выполнен непосредственно файлом моего модульного теста, поэтому, возможно, именно поэтому покрытие не распознается. Есть ли способ сделать это правильно, чтобы я мог как-то интегрировать файлы Selenium и модульных тестов и покрытие кода?

1 Ответ

3 голосов
/ 25 мая 2010

Я не знаком с Selenium или EPIC, но один обходной путь (если / пока кто-то не придет с более нативным решением) - просто включить "-MDevel :: Cover" в командную строку конфигурации запуска.

Что еще хуже, добавьте некоторую условную логику в блок BEGIN {}, которая - на основе некоторой переменной среды селена - условно делает use Devel::Cover

UPDATE

Должна быть возможность подавить вывод из Devel :: Cover с помощью -MDevel::Cover=-silent,1

$ perl5.8 -MDevel::Cover -e '{1;}'
Devel::Cover 0.64: Collecting coverage data for branch, blah
Selecting packages matching:
Ignoring packages matching:
blah, blah, blah
---------------------------- ------ ------ ------ ------ ------ ------ ------
File                           stmt   bran   cond    sub    pod   time  total
---------------------------- ------ ------ ------ ------ ------ ------ ------
Total                           n/a    n/a    n/a    n/a    n/a    n/a    n/a
---------------------------- ------ ------ ------ ------ ------ ------ ------


$ perl5.8 -MDevel::Cover=-silent,1 -e '{1;}'

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