【发布时间】:2014-03-06 20:08:15
【问题描述】:
我开始为我的项目进行单元测试,但遇到了困难。我有一个测试在我单独运行时运行完美。当我运行我拥有的所有测试时,它失败了:(我故意删除了其他代码和特定的类/变量/函数名称)
class XYZTest extends PHPUnit_Framework_TestCase {
public function setUp() {
$xml = $this->createXML();
//...
}
public function testWillFailUponRunAllTests() {
$this->subject = new XYZ();
$result = $this->subject->getHelpText();
//assert this and that
}
}
执行单个测试:完美运行。
执行所有测试:我收到一个我注入的类的错误。这很奇怪,所以我想调试一下测试看看发生了什么。
调试所有测试:我什至没有遇到错误,因为setUp() 已经导致此错误消息:XYZTest::setUp(): Invalid State Error
显然,这种情况既不会在我单独运行测试时发生,也不会在我以“正常”模式运行所有测试时发生。仅在调试模式下!
调试单个测试:我又得到了另一种行为:PHPUnit_Framework_TestResult::run(): Invalid State Error' in phar://C:/xampp/php/phpunit.phar/phpunit/Framework/TestResult.php on line 668。仅当我设置断点时才会发生这种情况,例如,当我禁用它们时不会发生这种情况。似乎是一个 PHPStorm 错误。
我正在使用 PHP 5.5.9、PHPStorm 7.1.3、PHPUnit 3.7.31、xDebug v2.2.3。我没有使用任何 PHP 框架。提前感谢您的帮助!
【问题讨论】: