我正在尝试自动化我的测试。作为冒烟测试,我想在继续实际的单元测试之前用 PHPMD 检查我的 PHP 代码。听起来够明智吧?
问题是当我的 PHP 文件中出现致命错误时,PHPMD 似乎崩溃了。对于测试,我在函数定义中添加了额外的荣誉,如下所示:
function foo() {{
// Stuff
}
如果我期望一个1
退出代码,PHPMD 似乎完全崩溃,而是返回一个0
退出代码。使我的自动化脚本无用。有没有办法抑制这些错误并返回预期的退出代码?对于 PHPUnit,该--process-isolation
选项解决了这个问题,但我似乎无法为 PHPMD 找到这样的选项。
相关自动化测试代码
#!/usr/bin/php
<?php
exec('meta/phpmd', $output, $returnCode);
if ($returnCode == 1) {
echo '[Fail] PHP code is breaking', PHP_EOL;
exit(1);
} elseif ($returnCode == 2) {
echo '[Warn] PHP code is unclean', PHP_EOL;
} else {
echo '[OK] Code is clean! ', PHP_EOL;
}