Joh*_*ohn 14 testing perl unit-testing
这个问题与我之前提出的这个问题有关.我有多个测试文件(At,Bt,Ct等),用于测试各自的模块A,B,C等.但是当我进行make测试时,它会运行所有测试.但是,当我在一个特定模块上工作时说B,我想为该模块运行单元测试.在完成我的更改后,我将运行整个套件.
那么有什么方法可以做make test B,只运行Bt的测试?当我说"make all all"之类的东西时,它会运行"t"目录下的所有测试?谢谢.
bri*_*foy 15
我只是运行我想要运行的测试:
% make; perl -Mblib t/B.t
Run Code Online (Sandbox Code Playgroud)
你也可以做同样的事情prove.
这-Mblib会加载模块blib,它只是为你添加blib/lib(以及它下面的各种特殊目录)@INC.它配备了Perl.prove应该用-b开关做同样的事情.
我的命令实际上是两个部分:( make或者./Build对于Module :: Build.这构建源并将Perl模块和其他文件移动到"构建库"或blib中,作为完整安装的中间步骤.通常make test对blib中的版本并为我刷新.由于我自己测试,我确保自己刷新blib并将其包含在Perl的模块搜索路径中.
尽管我知道这一切,但您可能会惊讶于我经常忘记执行其中一个步骤并最终针对错误的版本进行测试,无论是完全安装的旧版本(忘记-Mblib)还是旧的开发源(忘记了)make).这导致我调试语句,例如:
print "No really, this is the Foo version. kthnxbye\n";
Run Code Online (Sandbox Code Playgroud)