如何在TeamCity构建中仅运行失败的NUnit测试

10

我在selenium中有很多测试,需要近6个小时才能完成。执行后,由于超时错误或不可避免的错误,其中一些测试失败了。在这种情况下,我希望只运行失败的测试。我正在使用teamcity来运行nunit测试。你知道如何重新运行只有失败的测试吗?

2个回答

1

团队城市的nUnit集成中有一个选项可以首先运行失败的测试,但你不能将其限制为仅运行失败的测试,没有内置这样的功能。

我认为你有几个选择:

  • 使用Selenium grid /其他基础设施并行运行Selenium测试,以缩短测试运行时间。这似乎是你问题的根源:目前执行完整测试运行的时间太长了。如果你能快速运行Selenium测试,就不需要选择性地运行它们。通常使用内置的nUnit运行程序长期来看是不明智的,因为它不允许并行处理。
  • 根据你看到的失败情况确定nUnit测试套件,并进行自定义nUnit运行,只需传入那些要重新运行的测试套件 - 同样没有此功能的集成,你必须使用命令行nUnit运行程序。

nUnit Runner 3现在支持并行运行。 - John

1
根据您所使用的测试框架,有几个选项可供选择,因此您可以使用命令行选项使teamcity在更灵活的条件下启动测试。我们在不稳定的测试环境中使用了这种解决方法。
使用NUnit,可以将筛选后的输出文件(根据失败的测试)用作下一次运行的给定测试列表。有多种获取和设置列表的方法,您可以在此处找到详细信息:https://github.com/nunit/docs/wiki/Console-Command-Line 有两个快速选项:
  • 使用powershell脚本将带有失败测试的列表保存/添加到文件中
  • 读取最后一个测试结果文件,并使用where子句获取失败的测试
每次运行时,测试列表应缩小。
请注意:
  • 构建不易比较(teamcity根据指标变化估计执行时间或是否具有故障条件)
  • (新的)其他测试中的错误将保持未检测状态,直到您再次启动所有测试

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接