【问题标题】:How to run only failed nunit tests in teamcity build如何在 teamcity 构建中仅运行失败的 nunit 测试
【发布时间】:2014-11-02 16:18:34
【问题描述】:

我在 selenium 中进行了许多测试,需要将近 6 个小时才能完成。执行后,很少有由于超时错误或不可避免的错误而失败。在这种情况下,我只想运行失败的测试。我正在使用 teamcity 运行 nunit 测试。知道如何仅重新运行失败的测试。

【问题讨论】:

    标签: selenium nunit teamcity


    【解决方案1】:

    作为 TeamCity 的 nUnit 集成的一部分,可以选择首先运行失败的测试 - 但您不能将其限制为仅失败的测试,没有内置这样的功能。

    在我看来你有几个选择:

    • 使用Selenium grid / 其他基础架构并行运行您的 Selenium 测试,以减少您的测试运行时间。这似乎是您问题的根源:目前进行完整测试运行的时间令人望而却步。如果您可以快速运行 Selenium 测试,则无需选择性地运行它们。一般来说,长期使用内置的 nUnit 运行器是一个不好的选择,因为它不允许并行。
    • 根据您看到的故障确定 nUnit 测试装置并执行自定义 nUnit 运行,您只需传入这些测试装置以重新运行 - 再次没有集成,您必须使用命令行 nUnit 运行器.

    【讨论】:

    • nUnit runner 3 现在支持并行运行
    【解决方案2】:

    有几个选项取决于您使用的测试框架,因此您可以使用命令行选项根据更灵活的标准进行 teamcity 启动测试。 我们在不稳定的测试环境中使用了这种解决方法。

    使用 NUnit 可以将过滤后的输出文件(根据失败的测试)用作下一次运行的给定测试列表。有多种方法可以获取和设置列表,您可以在此处找到详细信息: https://github.com/nunit/docs/wiki/Console-Command-Line

    有两个快速选项:

    • 您在文件中保存/添加测试失败的列表(使用 powershell 脚本)
    • 读取最后一个测试结果文件并使用 where 子句获取失败的测试

    每次运行时,包含测试的列表都会缩小。

    注意:

    • 构建并不容易可比(teamcity 会根据指标变化估算执行时间,或者您是否有失败条件)
    • 在您再次启动所有测试之前,其他测试中的(新)错误不会被发现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-04
      • 2011-09-14
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多