TFS visual studio 测试 "Test Filter criteria" 和 xunit 特征

TFS visual studio test "Test Filter criteria" and xunit Traits

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

对 运行 进行单元测试
 [Trait("Category", "Integration")]

当我在 TFS VS 测试步骤中不使用 'Test Filter criteria' 时,单元测试全部执行。但是当我应用所需的过滤器时

Category!=Integration

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

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

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

  • 必须在真正构建测试项目的地方构建这样的配置(例如,在 Release 中测试项目通常没有构建)
  • 检测到多个测试 dll 似乎会造成麻烦(最好只过滤您真正想要的)
  • 特征的名称(和值)可以是任意的(至少 16.8 和 17.0.0),即测试过滤器标准中的文本不再需要是一些 vstest 标准名称,如 TestCategory