使用vstest.console.exe TestCategory与等号和不等号

10

我正在使用SpecFlow编写自动化UI测试场景(Gherkin)。我们有多个标签(@smoke、@on、@off等)。

测试A的标签为 @smoke ,测试B的标签为 @smoke @off。

这些标签被翻译成vstest测试类别,不包括 @ 符号。

我想运行测试A但不运行测试B。

这里的问题在于它会运行所有 @smoke 测试。

Vstest.console.exe mytest.dll /TestCaseFilter:"TestCategory=smoke&TestCategory!=off"

有什么想法吗?


你正在使用哪个测试运行器?NUnit、MSTest、XUnit、SpecFlow+Runner? - Andreas Willich
我正在使用Visual Studio 2013,实际上执行vstest.console.exe,因此涉及到SpecFlow.MSTest。 - Scope Creep
1个回答

17

我遇到了两个问题。

  1. 我使用 Thoughtworks Go 执行测试时,它在执行命令之前做了奇怪的引号处理。
  2. 我需要用括号将整个条件包围起来,例如:Vstest.console.exe mytest.dll /TestCaseFilter:"(TestCategory=smoke&TestCategory!=off)"

1
括号就是关键!以下是我在TFS测试筛选条件中需要输入的内容:(TestCategory!=Nightly&TestCategory!=Ignore)。我的目标是运行除上述类别之外的所有单元测试。基本上,我想运行所有未分配类别的测试。 - goku_da_master
我无法按类别执行,但没有类别时它可以正常工作。问题显示文件未找到。 - Ashok kumar Ganesan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接