【发布时间】:2012-02-28 20:20:09
【问题描述】:
我知道“--repeat”选项,但我更愿意在测试中和每个测试中定义重复。在我的单元测试中,有些测试我不想重复,有些测试我想重复的次数比其他测试更多。
我在想:
protected function tearDown() {
if (test has not been ran 3 times) {
$this->runTest(); // Re-run the test
}
}
这似乎不起作用,$this->run() 也不起作用。我查看了 PHPUnit 源代码,但我不确定。我猜它正在检查测试状态,如果它已经运行,它会拒绝再次运行它。
【问题讨论】:
-
为什么在单元测试中需要它?哦
-
这是一个扩展 PHPUnit_Framework_TestCase 的抽象类。目的是为每个测试定义 X 次重复,而不是由 --repeat 表示的全局 X 次重复。
-
我也想为此找到解决方案。 @Gordon - 我的情况是我正在通过套接字连接(thrift:php)测试服务。测试失败可能只是因为网络过载,这实际上并不意味着 .如果出现超时异常,我想重新运行测试,以便它通过或引发任何其他错误/异常。
-
@tkoomzaaskz 你不能模拟远程端吗?还是增加超时时间?
-
@Gordon 我无法增加超时时间,因为我需要修改外部服务的设置,而我不想这样做。你能解释一下模拟远端是什么意思吗?如果你的意思是我将使用一个模拟对象而不是一个真实的服务,这是不可行的,因为我们正在测试服务和 service-php 通信。所以服务必须是一个真实的实例。