Как заставить Devel::Cover игнорировать папку при использовании perl-helpers через Travis CI
Построение покрытия MetaCPAN Travis CI происходит довольно медленно. См. https://travis-ci.org/metacpan/metacpan-web/builds/238884497 Это, вероятно, отчасти потому, что мы не можем успешно игнорировать /local
папка, которая создается Carton
как часть нашей сборки. Смотрите https://coveralls.io/builds/11809290
Мы используем perl-helpers
чтобы помочь с нашей конфигурацией Travis. Я думал, что смогу использовать DEVEL_COVER_OPTIONS
переменная окружения, чтобы исправить это, но я думаю, что у меня нет правильного заклинания. Я включил всю конфигурацию ниже, потому что некоторые фрагменты вне контекста казались вводящими в заблуждение.
language: perl
perl:
- "5.22"
matrix:
fast_finish: true
allow_failures:
- env: COVERAGE=1 USE_CPANFILE_SNAPSHOT=true
- env: USE_CPANFILE_SNAPSHOT=false HARNESS_VERBOSE=1
env:
global:
# Carton --deployment only works on the same version of perl
# that the snapshot was built from.
- DEPLOYMENT_PERL_VERSION=5.22
- DEVEL_COVER_OPTIONS="-ignore ^local/"
matrix:
# Get one passing run with coverage and one passing run with Test::Vars
# checks. If run together they more than double the build time.
- COVERAGE=1 USE_CPANFILE_SNAPSHOT=true
- USE_CPANFILE_SNAPSHOT=false HARNESS_VERBOSE=1
- USE_CPANFILE_SNAPSHOT=true
before_install:
- git clone git://github.com/travis-perl/helpers ~/travis-perl-helpers
- source ~/travis-perl-helpers/init
- npm install -g less js-beautify
# Pre-install from backpan to avoid upgrade breakage.
- cpanm -n http://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/common-sense-3.6.tar.gz
- cpanm -n App::cpm Carton
install:
- cpan-install --coverage # installs converage prereqs, if enabled
- 'cpm install `test "${USE_CPANFILE_SNAPSHOT}" = "false" && echo " --resolver metadb" || echo " --resolver snapshot"`'
before_script:
- coverage-setup
script:
# Devel::Cover isn't in the cpanfile
# but if it's installed into the global dirs this should work.
- carton exec prove -lr -j$(test-jobs) t
after_success:
- coverage-report
notifications:
email:
recipients:
- olaf@seekrit.com
on_success: change
on_failure: always
irc: "irc.perl.org#metacpan-travis"
# Use newer travis infrastructure.
sudo: false
cache:
directories:
- local
1 ответ
Синтаксис для параметров Devel::Cover в командной строке странный. Вы должны положить вещи через запятую. По крайней мере, когда вы используете PERL5OPT
,
DEVEL_COVER_OPTIONS="-ignore,^local/"
Смотрите, например, https://github.com/simbabque/AWS-S3/blob/master/.travis.yml#L26, где много вещей с запятыми.
PERL5OPT=-MDevel::Cover=-ignore,"t/",+ignore,"prove",-coverage,statement,branch,condition,path,subroutine prove -lrs t