将PHPUnit测试类标记为要忽略

时间:2011-05-09 08:22:59

标签: php phpunit

我编写了一个抽象的测试用例类,它将由具体的测试用例类进行扩展。

它扩展自 PHPUnit_TestCase

是否有方法或注释表明Phpunit不执行此抽象测试(但不会将其标记为跳过或不完整)?

现在Phpunit也运行抽象测试类,然后报告一个错误,它无法实例化它 - 这是语言:抽象类无法实例化。

3 个答案:

答案 0 :(得分:15)

如果名为FooTest,则将其重命名为FooTestCase

答案 1 :(得分:8)

只需在setUp()上添加跳过:

protected function setUp()
{
    $this->markTestIncomplete();
}

答案 2 :(得分:6)

假设您要排除文件名TestCase.php。 在我的例子中,我使用这个类作为我所有测试类的抽象,它本身扩展了PHPUnit_Framework_TestCase

解决方案:将此添加到您的phpunit.xml

<testsuites>
    <testsuite name="BLABLA">
        <directory suffix=".php">./tests</directory>
        <exclude>./tests/TestCase.php</exclude>
    </testsuite>
</testsuites>

我的TestCase.php示例:

<?php
namespace Foo\Bar\Tests;

use Mockery as M;
use PHPUnit_Framework_TestCase as PHPUnit;

/**
 * Class TestCase is the Parent test class that every test class must extend from.
 */
class TestCase extends PHPUnit
{

    public function __construct()
    {
        parent::__construct();
    }

//...