筛选单元在visual studio 2012中的test explorer中通过属性名称和值进行测试

时间:2013-08-30 18:08:42

标签: visual-studio-2012 test-explorer

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

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

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

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

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

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

我知道我可以使用trait:B来显示所有已定义属性B的测试,或者使用值设置为B的属性。但我想知道是否有办法只能使用以下内容进行测试:< / p>

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

1 个答案:

答案 0 :(得分: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"

<强>另外

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

How To Manage Unit Tests in Visual Studio 2012 Update 1 Part 1 Using Traits in the Unit Test Explorer