2

我希望能够从 vstest.console.exe 命令行运行每个规范流功能,而不是运行该项目中的所有测试。我意识到有一个用于按类别过滤的命令行参数,但对我来说如何为 specflow 测试定义类别并不明显。有没有办法做到这一点,或者有没有其他方法可以完成通过命令行与 vstest.console 运行的分组规范流测试?

4

1 回答 1

3

你想要标签一旦您意识到 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

实际上,不久前我有一个类似(但不重复)的问题:如何使用 MSTest 从命令行运行 SpecFlow 场景?. 这可能是一个很好的阅读。

于 2014-09-30T12:30:59.093 回答