【发布时间】:2015-12-25 18:23:02
【问题描述】:
如何使用 vstest.console.exe 运行测试列表? .vsmdi 格式提供了一种指定测试列表的方法,但该格式已被弃用(?)。
我可以在命令行上运行一个明确的测试列表,这基本上完全符合我的要求,但是如果测试的数量很大(比如几百个),那么我将用完命令行空间!
vstest.console MyTests.dll /Tests:Test1,Test2
我有没有办法欺骗 vstest.console.exe 运行以任何其他方式定义的测试列表?
(编辑:强调)
注意:我不想更改测试代码,例如添加测试类别属性或更改命名方案,以便名称匹配将选择子集。我需要它来运行测试列表。
我能想到的最好的办法是在最大命令行长度内尽可能多地运行,然后重复直到集合完成,然后合并。但是,如果有某种方法可以加载旧版 vsmdi 列表或类似的列表,那就容易多了。
vstest.console MyTests.dll < testnames.txt
vstest.console MyTests.dll /Testlist:testnames.txt
【问题讨论】:
-
您应该改用 /TestCaseFilter 开关。它允许您控制运行的内容。这是 [msdn 链接] (msdn.microsoft.com/en-us/library/jj155800.aspx)
-
我不明白这如何让我运行明确的测试列表?测试没有例如一个共同的前缀。如果我让过滤器明确匹配名称
(Test1 | Test2 | ..)然后我回到我开始的地方,将用完命令行空间! -
过滤器支持的不仅仅是类名。在您的情况下,您可能应该使用“TestCategory”过滤器 - 然后使用 TestCategory 属性标记要运行的测试类。这允许您以多种方式对测试进行分类,并且只在命令行中使用过滤器运行您需要的内容。
-
我无法更改测试(类名、类别、命名空间等)。我想从给定列表中运行一个子集(例如其中的 1000 个),可以在运行之间动态更改。
-
好吧,那么我能想到的唯一选择是将它们分成更小的子集,并在每个块上多次运行 vstest.console。听起来您正处于对测试课程的控制有限的困境中。
标签: visual-studio mstest vstest