我正在尝试使用strace跟踪运行单元测试所涉及的文件。有没有办法在我这样做的时候捕获测试运行的exitcode?
@cmd="php -d auto_prepend_file=auto_prepend_for_tests.php /data/tests/sdk/bin/phpunit.phar --configuration /data/tests/conf/database.xml
my_test.php"
open(IN, "-|", "strace -ff $pid -e trace=file @cmd 2>&1")
Strace将使用与跟踪程序相同的退出代码退出。到现在为止还挺好。
开放看起来有点意外,我们正在谈论的是perl吗?然后来自perldoc -f open
的这个位适用:
关闭任何管道文件句柄会导致父进程等待子进程完成,然后返回$?中的状态值。和“$ {^ CHILD_ERROR_NATIVE}”。
所以,是的,您可以通过调用close IN
并查看$中的值来获取代码。