【问题标题】:TFS visual studio test "Test Filter criteria" and xunit TraitsTFS Visual Studio 测试“测试过滤条件”和 xunit Traits
【发布时间】:2022-02-02 19:25:54
【问题描述】:

我正在尝试过滤掉一些标有 xunit 特征类别的单元测试。在我的构建服务器上,我不希望单元测试以 integration

类别运行
 [Trait("Category", "Integration")]

当我在 TFS VS 测试步骤中不使用“测试筛选条件”时,单元测试都会被执行。但是当我应用所需的过滤器时

Category!=Integration

它根本不运行任何测试。我尝试了所有变体,但没有成功。我也尝试使用 2.* 版本的测试任务。

【问题讨论】:

  • 您使用的是 vNext 构建定义还是 XAML 构建定义?
  • 我正在使用 TFS 2017 本机构建定义。绝对不是 XAML
  • 在 vsts-tasks 中测试过滤条件,此选项的工作方式与 vstest.console.exe 的控制台选项/TestCaseFilter 相同。缩小与 TFS 构建定义相关的问题。建议您尝试在本地使用vstest.console.exe和/TestCaseFilter手动运行测试看看是否有效。
  • 尝试使用此方法添加测试类别:[TestCategory("Integration")]。然后在 VS 测试步骤中,设置:TestCategory!=Integration
  • 这似乎是 xUnit 和 TFS 之间的错误:social.msdn.microsoft.com/Forums/vstudio/en-US/…

标签: tfs xunit


【解决方案1】:

不要使用 [Trait("Category", "Integration")],而是使用 [Trait("TestCategory", "Integration")]。 XUnit 并不关心您为这些键值对输入了什么,但 TFS 测试运行器任务会。 Test Filter Criteria 框仅适用于规定的一组属性。我有这个为我们的构建工作。遇到你描述的同样的问题。在分析了构建输出之后,(并将所有测试项目切换到 XUnit - 这也是一个关键......不要混合使用 MSTest 和 XUnit)。

【讨论】:

    【解决方案2】:

    现在(2022 年 2 月),这不再是问题了。但是,我在让它工作时遇到了一些问题,无论如何我都到了这里,所以只有几点:

    • 必须在真正构建测试项目的地方构建(例如,在发布中,测试项目通常不会构建)
    • 多个检测到的测试 dll 似乎会造成问题(最好只过滤真正需要的那些)
    • 特征的名称(和值)可以是任意的(至少是 16.8 和 17.0.0),即 Test Filter Criteria 中的文本不再需要是某些 vstest 标准名称,例如 TestCategory李>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2018-04-23
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多