我有三个单元测试无法在构建服务器上通过,因为它们依赖运行测试的用户的登录凭据。
是否有任何方法(属性???)可以隐藏这三个测试并运行所有其他测试?
我们的构建服务器专家告诉我,生成一个排除这些测试的vsmdi文件就可以解决问题,但我不确定如何操作。
我知道我可以将这三个测试放入一个新项目中,并让我们的构建服务器管理员明确排除它,但我真的很想能够只是在这些有问题的测试上使用一个简单的属性。
我有三个单元测试无法在构建服务器上通过,因为它们依赖运行测试的用户的登录凭据。
是否有任何方法(属性???)可以隐藏这三个测试并运行所有其他测试?
我们的构建服务器专家告诉我,生成一个排除这些测试的vsmdi文件就可以解决问题,但我不确定如何操作。
我知道我可以将这三个测试放入一个新项目中,并让我们的构建服务器管理员明确排除它,但我真的很想能够只是在这些有问题的测试上使用一个简单的属性。
你可以为测试添加一个类别标签,然后根据标签运行测试。
[TestCategory("RequiresLoginCredentials")]
public void TestMethod() { ... }
当你运行 mstest
时,你可以指定 /category:"!RequiresLoginCredentials"
其他答案已经过时。
在现代的Visual Studio(2012及以上版本),测试是使用vstest而不是mstest运行的。
新的命令行参数是/TestCaseFilter:"TestCategory!=Nightly"
,如此文章中所述。
打开测试->Windows->测试列表编辑器。
在那里,您可以包含/隐藏测试。
TestCategory!=MyTestCategory
所有分类为MyTestCategory的测试都被跳过了。