如何在单独的进程中运行单个phpUnit测试?

20

是否可能在同一个进程中运行phpUnit测试套件的测试,但将特定的测试标识为在它们自己的进程中运行?

通常我使用

@runTestsInSeparateProcesses
@preserveGlobalState disabled

我需要运行整个测试套件,但我只需要单独运行一个方法,并且希望其余方法在一个进程中运行以提高速度。

谢谢

1个回答

37

正如您在PHPUnit手册中所看到的,您可以使用@runInSeparateProcess标签:

class MyTest extends PHPUnit_Framework_TestCase
{
    /**
    * @runInSeparateProcess
    */
    public function testInSeparateProcess()
    {
        // ...
    }
}

1
使用简单的 echo "working?"; 实现该函数会导致我的 phpUnit 测试套件“挂起”,永远无法完成执行。有什么想法吗? - jake_feyereisen
你的意思是使用docblock吗? - Nelson Senna
使用docblock会导致我的测试套件中的函数挂起,但是当我运行上面基本shell的脚本时却没有问题。看起来我可能有一个问题,因为我通过一个抽象类继承PHPUnit_Extensions_Database_TestCase。 - jake_feyereisen
1
我也遇到过这种卡顿的情况。你解决了吗? - fraxture
这是为了一个测试。如果你想要全部,使用 --process-isolation 作为参数。 - vectorialpx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接