因为您无法使用 MSTest 在测试类上设置测试类别,所以我选择在名称中执行类似操作,每当测试类包含运行缓慢的测试时,都会在测试类包含运行缓慢的测试时将其后缀...IntegrationTests
。
在 Visual Studio 测试资源管理器中,我可以使用以下命令排除这些测试:
-class:IntegrationTests
但是,在 TeamCity 中,此选项不起作用。我在最新版本的 TeamCity 中使用 VSTest 2017 测试引擎版本。但是,它似乎只有一个TestCaseFilter
选项,似乎缺少排除某个类中的测试的选项?
我使用了这个VSTest.ConsoleRunner文档和这篇关于TestCaseFilter
的文章来得出这个结论。我还通读了运行设置文件文档,看看它是否包含任何信息,但没有运气。
我的目标是让 1 个 TeamCity 步骤在未"标记为"慢的类中运行所有测试,并在标记的类中运行另一个后续步骤。
我目前看到的唯一解决方法是将所有测试项目拆分为两个项目,并将这些集成测试类移动到单独的程序集中。我宁愿不这样做。
底线:如何在类名包含特定字符串的类中排除测试?
TestCategory 属性可以在类/程序集级别使用。看这里:https://blogs.msdn.microsoft.com/visualstudioalm/2017/02/25/mstest-v2-now-and-ahead/。
另外,请在此处查看相同的推特线程:https://twitter.com/pvlakshm/status/844905609409564672