【问题标题】:PHPUnit Selenium. Is it possible to run tests twice before actually marking the test as failed when running it as a test suite?PHPUnit 硒。在将测试作为测试套件运行时,是否可以在实际将测试标记为失败之前运行两次测试?
【发布时间】:2013-10-02 18:58:06
【问题描述】:

我每周都运行我的测试套件/脚本,但似乎有些测试用例总是失败,即使没有任何错误。

当我第二天检查失败的测试用例时,大约有 2/3 的测试用例很好并且通过了。

我已经将超时时间增加到 60 秒

我很确定测试用例失败的原因是因为有时页面加载或上传文件需要一段时间,这会导致 WaitFor 超时。

在将测试作为测试套件运行时,是否可以在实际将测试标记为失败之前运行两次测试?

【问题讨论】:

  • 您必须创建自己的自定义测试运行器方法,而不是使用 vanilla phpunit。 if (testFails) { runItAgain() while maxTries != 3}

标签: selenium phpunit


【解决方案1】:

如果您的测试有时不是因为错误而失败,那么真正的解决方案是尝试缩小为什么您的测试有时会通过,有时不会。如果您对长页面加载的怀疑被证明是正确的,而不是再次尝试重新运行测试 - 这会人为地延长测试执行时间而不会提供任何明确的测试结果,因为它可能再次失败,您应该尝试以下方法之一:

  • 设置一个舒适的超时(在检查页面加载/文件上传的平均时间之后),并将任何超时视为真正的失败,而不是无限期地重试。

  • 放弃测试。 不产生可靠结果的测试比没有测试更糟糕,因为一般情况下您可能会不信任/放弃测试结果。

  • 将测试分离到不同的套件中,这是一组具有外部依赖关系的测试,并且可能由于您无法控制/代码之外的外部原因而失败。这将使您对可以运行的测试充满信心,以确保您的代码不会破坏任何东西,以及另一组测试以完全覆盖您的应用程序。

【讨论】:

  • 我想强调一个事实,部分失败的测试比没有测试更糟糕。找出失败的原因并消除它。如果这意味着在开始实际测试之前通过最初获取一些页面来刷新一些缓存,那么这也可能是一个选项。
猜你喜欢
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 2018-04-22
  • 2020-10-14
相关资源
最近更新 更多