2

有没有办法通过属性名称和属性值在 Visual Studio 2012 的测试资源管理器中过滤测试。在 4 个不同的测试中考虑以下属性:

[TestPropertyAttribute("A", "1")]

[TestPropertyAttribute("B", "1")]

[TestPropertyAttribute("A", "2")]

[TestPropertyAttribute("B", "2")]

是否有一个表达式可以放在测试资源管理器过滤栏中,它只会让我测试属性 B 的值为 1?类似的东西:trait:B=1

我知道我可以trait:B用来显示定义了属性 B 的所有测试,或者值设置为 B 的属性。但我想知道是否有一种方法只能让测试用以下内容装饰:

[TestPropertyAttribute("B", "1")]
4

1 回答 1

1

没有直接的方法可以做到这一点,但有几种解决方法可用于满足您的需求。

1. 如果您的测试中没有任何其他特征(TestPropertyAttribute、TestCategory、Priority 或 Owner),您可以通过定义两个过滤器来做到这一点,如下所示:

Trait:"B" Trait:"1"

但是您必须小心,因为该过滤器还会返回所有这些测试:

[TestPropertyAttribute("B", "1")]
[TestPropertyAttribute("B", "10")]
[TestPropertyAttribute("B", "100")]
[TestPropertyAttribute("B", "21")]
[TestPropertyAttribute("B", "31")]

因此,在这种情况下,您需要添加一些前导零来解决问题:

[TestPropertyAttribute("B", "001")]
[TestPropertyAttribute("B", "010")]
[TestPropertyAttribute("B", "100")]

因此,您可以将arcodingly与过滤器一起使用:

Trait:"B" Trait:"001"

2. 如果您使用其他特征(TestPropertyAttribute、TestCategory、Priority 或 Owner),您必须更具体地使用您自己的 TestPropertyAttribute。

假设您还有一个数字属性,它可能与您的“B”特征值混淆。所以你必须像这样将“B”添加到你的特征值中:

[TestPropertyAttribute("B", "B001")]

因此,您可以通过以下方式进行过滤:

Trait:"B001"

此外

建议阅读以下博客,其中包含有关此主题的非常有用的信息:

如何在 Visual Studio 2012 Update 1 第 1 部分中使用单元测试资源管理器中的特征管理单元测试

于 2013-09-18T09:15:13.497 回答