2013-03-13 3 views
0

я просто реализован отличный пример тестового покрытия в Perl описаны в Perl, Code Coverage Exampleтестовое покрытие в Jenkins для применения Perl

Но что требуется Module :: Build, что теперь, если я уже есть Perl приложение, которое не имеет Module :: Build Instrument, есть ли способ получить тестовое покрытие для модульных или функциональных тестов?

Я посмотрел на:

Clean up from previous test run (optional) 
    cover -delete 

    #Test run with coverage instrumentation 
    PERL5OPT=-MDevel::Cover prove -r t 

    #Collect covered and caller information 
    # Run this _before_ running "cover" 
    # Don't run with Devel::Cover enabled 
    covered runs 
    - or e.g. - 
    covered runs --rex_skip_test_file='/your-prove-file.pl$/' \ 
      --rex_skip_source_file='{app_cpan_deps/}' 

    #Post process to generate covered database 
    cover -report Html_basic 


    %perl -d:Coverage -Iblib/lib test.pl 

Но это, кажется, указывает покрытие кода во время работы приложения.

Я хочу, чтобы иметь возможность получить Clover или Cobertura совместимый выход, так что я могу интегрировать его с электронной почтой-вн в Дженкинс

ответ

2

Task::Jenkins может иметь некоторую помощь. В нем есть инструкции о том, как публиковать отчеты Devel :: Cover HTML через Jenkins, а также информацию об адаптации других инструментов Perl к Jenkins.

У Jira есть некоторые инструкции относительно integrating Devel::Cover into Jenkins.

Чтобы получить покрытие кода для любого процесса Perl (test, application, server, whatever), вы устанавливаете переменную окружения PERL5OPT в -MDevel::Cover, которая похожа на установку use Devel::Cover в программу. Если ваша команда для выполнения тестов - perl something_test, тогда вы запустите PERL5POT=-MDevel::Cover perl something_test.

Если вы используете prove, используйте HARNESS_PERL_SWITCHES=-MDevel::Cover prove <normal prove arguments>. Это сообщает prove, чтобы загрузить Devel::Cover при запуске тестов, но избегает сбора покрытия для самого себя.

+0

это означает PERL5OPT = -MDevel :: Cover proof --timer --formatter = TAP :: Formatter :: JUnit -v -r. > perlapp_smoke.xml 2> perlapp_smoke.err НЕ РАБОТАЕТ? Поскольку он не имеет perl something_test формата, а скорее доказывает. – kamal

+0

@kamal Обновлено для подтверждения. – Schwern

+0

Спасибо, Как получить отчет HTML во время работы с доказательством? –