【问题标题】:How can I run the same xunit.net test suite in multiple configurations?如何在多种配置中运行相同的 xunit.net 测试套件?
【发布时间】:2020-03-12 00:01:23
【问题描述】:

我正在用 C# 开发一个可以在 SSL 或纯文本模式下运行的网络客户端库。两者都需要支持。在以一种或另一种模式工作时,我发现了一些在测试其他东西时可能会意外出现的怪癖。我发现以纯文本或 SSL 模式运行测试来诊断问题非常有用。

我想在我的 CI 服务器上以纯文本和 SSL 模式运行该库。我可以通过使用环境变量启动 dotnet test 来描述要运行的模式很容易做到这一点,但这会为我的 CI 软件产生重复的测试输出,该软件目前是 Appveyor,但很快就会成为 TeamCity。如果单元测试在 SSL 中失败但在纯文本模式下失败,则很难将它们区分开来。

目前,我认为最好的方法是在报告给 CI 软件的每个测试用例的名称前面加上运行类型,但我找不到这样做的方法。不过,我愿意接受其他建议。

我的其他想法:

  • 重写所有测试以使用[Theory] - 这似乎需要大量工作,而且我无法使用构造函数进行设置。我还有许多[Theory] 测试,我必须以某种方式弄清楚。
  • 为每个不同的测试运行设置不同的 CI 配置 - 现在这很好,但如果我必须针对同一软件的不同版本运行相同的测试,我最终可能会得到 10 个或更多配置。

在这种情况下,这两种方法都不是解决问题的正确方法,我希望有一个更优雅的解决方案,因为我确信我不是唯一遇到此问题的人。

【问题讨论】:

    标签: unit-testing .net-core teamcity xunit.net appveyor


    【解决方案1】:

    使用 xUnit,您可以使用特征或类别来实现此目的

    http://www.brendanconnolly.net/organizing-tests-with-xunit-traits/

    我知道这绝对可以在 TeamCity 中完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      相关资源
      最近更新 更多