我编写了一个抽象的测试用例类,它将由具体的测试用例类进行扩展。
它扩展自 PHPUnit_TestCase 。
是否有方法或注释表明Phpunit不执行此抽象测试(但不会将其标记为跳过或不完整)?
现在Phpunit也运行抽象测试类,然后报告一个错误,它无法实例化它 - 这是语言:抽象类无法实例化。
答案 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();
}
//...