对于我们的项目,我在PHPUnit框架之上创建了一个框架,它帮助我们编写单元测试中的一些常见任务。
此自定义框架继承自 PHPUnit_Framework_TestCase ,然后修改mySetup()并为我们的代码添加一堆有用的函数。
<?php
class OurUnitTestFramework extends PHPUnit_Framework_TestCase {
public $dbMock;
protected function mySetup (..) { ... }
protected function testHelper () { ... }
}
?>
现在在我们的测试代码中,我们只是扩展OurUnitTestFramework,然后编写测试。
<?php
require_once ("OurUnitTestFramework");
class DatabaseConnectionTest extends OurUnitTestFramework {
parent::setUp (..) { ... }
public function testSomeThing () { ... }
public function testSomeOtherThing () { ... }
}
?>
直到现在我们通过Jenkins运行所有单元测试并且它仍然正常运行但现在当我们尝试在文件夹中运行测试时它失败了。文件夹/子文件夹中的所有测试都成功运行,但有一个失败:
[sumit@dev model]$ phpunit database
PHPUnit 3.5.14 by Sebastian Bergmann.
F........
Time: 0 seconds, Memory: 10.50Mb
There was 1 failure:
1) Warning
No tests found in class "OurUnitTestFramework".
FAILURES!
Tests: 9, Assertions: 30, Failures: 1.
我有一个目录数据库,它有子目录,所有测试都从该文件夹及其子文件夹传递,但是我从OurUnitTestFramework中得到失败,说这个自定义框架中没有找到测试。所以我无法理解为什么phpunit在测试文件中包含/扩展的文件上运行单元测试?
我们可以简单地选择忽略这一个错误,但我想知道是否可以这样离开,或者是否需要配置以使其通过。
由于
答案 0 :(得分:4)
让'OurUnitTestFramework'成为一个抽象类。