具有相同类别的测试被分组为不同的特征

Tests with the same category are grouped as different traits

我将属性 [TestCategory("Unit")] 分配给了我的一堆测试,当我 select 在测试资源管理器中按特征分组时,它显示了两个 Unit 组作为此处显示

我在三个不同的项目和几个不同的命名空间中定义了 Unit 属性,因此起初我认为这可能是问题所在。但是,第一个 Unit 组包含来自两个不同项目的测试,因此不同项目中的测试似乎并不总是单独分组。

是什么导致了这种行为?用 [TestCategory("Unit")] 定义的所有测试不应该在测试资源管理器中位于同一组下吗?

我找到了解决方案。

我的解决方案中有三个测试项目,它们都包含具有 [TestCategory("Unit")] 属性的测试方法。其中两个项目引用了 Microsoft.VisualStudio.QualityTools.UnitTestFramework(这些项目是在 Visual Studio 2015 年创建的),其中一个项目引用了 Microsoft.VisualStudio.TestPlatform.TestFrameworkMicrosoft.VisualStudio.TestPlatform.TestFramework.Extensions(该项目是在 Visual Studio 2017)。我更改了我的测试,以便所有三个测试项目都引用 Microsoft.VisualStudio.TestPlatform... 库,现在我的测试已正确分类。

Visual Studio 一定是对测试进行了不同的分类,因为 TestCategory 属性是在每个项目的不同库中定义的。