如何在调试器模式下运行perl测试?

Eug*_*kov 6 testing perl perl-prove

我尝试在调试器下运行测试:

perl -d $(which prove) t/file.t
Run Code Online (Sandbox Code Playgroud)

但这没有任何效果,因为每个测试都是作为单独的工作运行的.

我找到了--exec选项,但是当我提供它时,我从.proverc文件和命令行中丢失了任何选项

prove -Ithis/is/lost --exec 'perl -d' t/file.t
Run Code Online (Sandbox Code Playgroud)

如何prove使用其他选项运行测试,并且不丢失在.proverc文件和命令行中提供的选项?

我不想重复自己写道:

prove --exec 'perl -d -Ilib -Ilocal/lib/perl5' t/file.t
Run Code Online (Sandbox Code Playgroud)

虽然-Ilib并且-Ilocal/lib/perl5都在.proverc档案

mob*_*mob 1

如果设置了环境变量,您可以重复一次PERL5OPT

export DBG_MODE='-d -Ilib -Ilocal/lib/perl5'
prove t/file1.t                       # regular use
PERL5OPT=$DBG_MODE prove t/file2.t    # with debugger
Run Code Online (Sandbox Code Playgroud)

或者使用别名或 bash 函数

alias proved='PERL5OPT="-d -Ilib -Ilocal/lib/perl5" prove'
Run Code Online (Sandbox Code Playgroud)