我希望能够从vstest.console.exe命令行运行每个specflow功能,而不是运行该项目中的所有测试。我意识到有一个命令行参数可以按类别进行过滤,但对我来说如何定义specflow测试的类别并不明显。有没有办法做到这一点,还是有其他方法可以通过vstest.console命令行运行分组specflow测试?
答案 0 :(得分:3)
你想要Tags。一旦您意识到SpecFlow实现Gherkin Language。
,SpecFlow就会变得更容易理解标记是组织功能和方案的好方法。 ...场景或功能可以包含任意数量的标签。只需用空格分隔它们......特征中存在的任何标记都将由场景,场景大纲或示例继承。
一个简单的例子:
@posts
Feature: Blog Posts
@comments
Scenario: Adding a comment
...
@comments
Scenario: Deleting a comment
...
Scenario声明正上方的@foo
语法创建了可以使用MS Test运行的类别。
之后你可以使用"测试视图" Visual Studio中的窗格按类别筛选所有测试,或从Visual Studio命令行运行它们:
mstest /testcontainer:Blog.Tests.dll /category:comments
我实际上有一段相似(但不重复)的问题:How do you run SpecFlow scenarios from the command line using MSTest?。这可能是一个很好的阅读。