【发布时间】:2011-10-09 17:22:10
【问题描述】:
我有一组复杂的 PHPUnit 测试,其中一些涉及连接到世界各地的服务器,无论出于何种原因,这些服务器有时会超时。
我不想在服务器超时时让测试失败,我只想在实际将其标记为失败之前重试该测试一次或多次。
现在,我明白这可能不是处理我手头情况的最佳方式。一种更好的解决方案是修复服务器。但是,现在这超出了我的控制范围。
所以,我真正想要的是一种告诉 PHPUnit 重新测试每个失败的测试用例 X 次的方法,并且只有在每次都失败时才将其标记为失败。
有什么想法吗?
编辑:你们中的许多人都提出了我不这样做的有用建议。我明白了,谢谢。但是,具体而言,我要做的是创建一个测试套件,用于测试完整系统的操作,包括远程服务器。我了解测试我的代码的某些部分的概念来自外部的“模拟”响应......但如果我的部分测试测试“全栈”,我晚上也会睡得更好。
【问题讨论】:
-
根据您的编辑: 1. 当您说“它不是您的主机”时,您会说“它不是 您的 系统的一部分”。因此,您不应该将它包含在您的测试中,因为无论如何您都无法影响它,并且它会伪造结果。 2. 你永远不会创建测试
$this->assertEquals(1, rand(0,1)),对吗?当您包含不确定的外部系统时,就会发生这种情况。
标签: php phpunit integration-testing