PHPUnit有two special annotations表示测试应该在后台进程中运行:类注释@runTestsInSeparateProcesses
影响当前类中的所有测试,以及测试注释@runInSeparateProcess
影响目前的测试。
在某些情况下,当测试类需要打印一些输出时,这很有用,所以它不会搞乱PHPUnit自己的输出。
所以,这是我的问题:TestCase类是否意识到这一事实?它知道它何时在后台运行?如果是这样,有没有办法检测它?
我正在寻找类似$this->isRunningOnBackground()
的内容。
我在文档中没有找到任何相关内容。
答案 0 :(得分:0)
浏览PHPUnit的源代码,我在TestCase类$runTestInSeparateProcess
中找到了一个布尔保护属性,当注释存在时,该属性设置为true。还有$runClassInSeparateProcess
,但它设置为私有,因此您不会在子类上下文中访问它。
我们可以通过检查setUp()或tearDown()中的if ($this->runTestInSeparateProcess) {...}
来检测测试是否在后台运行。