我正在使用 PHPUnit 启动一个 TDD 项目,但有些事情确实让我烦恼。
似乎只要所有的类和方法都没有实现,所有的测试就无法运行。
如果类或方法尚未实现,我该如何使测试继续事件?
Thanks.
编辑:
“TDD 的重点不就是你的测试套件在编写测试时失败吗?”
是的,当然,但我希望对这个项目有一个全球性的了解。
假设我们已经编写了 1000 个测试,第一个运行的测试出现了致命错误。
但我们并不幸运,当我们实现代码时,该部分将是最后实现的部分之一。我不想“盲目”开发,只有在清除所有致命错误后才能运行我的测试套件。
所以,是的,失败的测试与由于在此状态下正常的致命错误而停止/终止的整个测试过程之间存在巨大差异。
作为解决方法,我们在开始编写测试之前创建了类框架。
TDD 的重点不就是你的测试套件在编写测试时失败吗?
我想你的观点是它因致命错误而终止,而不是只显示红色的“我失败”栏。非常有趣的一点是,我正在使用 phpunit 进行 TDD,但这从来没有困扰过我。
我首先想到的是--process-isolation
.
Example:
让我们假设一个测试类如下所示:
<?php
class fooTest extends PHPUnit_Framework_TestCase {
public function testA() {
$x = new a();
}
public function testB() {
$this->assertTrue(true);
}
}
使用普通跑步者phpunit test.php
:
PHPUnit 3.5.12 by Sebastian Bergmann.
Fatal error: Class 'a' not found in /home/mcsvnls/mep.php on line 6
但当使用phpunit --process-isolation test.php
切换它看起来像这样:
PHPUnit 3.5.12 by Sebastian Bergmann.
E.
Time: 1 second, Memory: 3.25Mb
There was 1 error:
1) fooTest::testA
RuntimeException: Fatal error: Class 'a' not found in /home/foo/mep.php on line 6
Call Stack:
0.0005 102364 1. {main}() /home/foo/-:0
0.0341 1768644 2. __phpunit_run_isolated_test() /home/foo/-:143
[...........]
FAILURES!
Tests: 2, Assertions: 1, Errors: 1.
现在第二个测试已执行并通过
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)