是否可以从文件加载 SpecFlow 测试?

Is it possible to load SpecFlow tests from a file?

我想给客户一个库 + SpecFlow 项目,让他们添加新的 SpecFlow 场景,而无需生成源代码/编译。

是否可以从文本文件和 运行 加载一组测试?

SpecFlow 场景只是纯文本文件。没有什么可以阻止您的客户打开记事本或任何其他文本编辑器并编写新场景或功能。他们甚至可以将它们写在 e-mail 中并发送给您。

Visual Studio 和 SpecFlow 扩展只是让编写新场景变得更容易,因为它为步骤启用了 auto-complete。如果您的客户不需要步骤建议,那么任何文本编辑器都可以。

一旦你有了他们的新场景,你就可以将新的功能文件添加到你的测试项目中。这将启用步骤绑定并允许您 运行 测试。

如果您希望客户编写场景​​并能够 运行 他们,那您就不走运了。这不受支持,除非您创建一个 windows 应用程序来导入您的步骤定义、测试依赖项,然后在执行它们之前将功能文件解析为测试 类。

所以,你可以部分得到你想要的。

  1. 客户可以在他们想要的任何文本编辑器中编写新场景。
  2. 您需要将这些场景复制到测试项目的功能文件中。
  3. 您将是 运行进行测试的人,而不是客户。
Feature: Clients writing their own scenarios
    In order to collaborate more openly and efficiently with the development team
    As a client
    I would like to write new BDD scenarios

Scenario: Client writes a new scenario in notepad
    Given the client has opened notepad
    When the client writes the following scenario:
        """
        Scenario: Adding comments
            Given a blog post titled "Today's weather" was written
            When a reader comments on "Today's weather"
            Then 1 comment exists on the blog post titled "Today's weather"
        """
    Then the client has written a scenario titled "Adding comments"
    But the client cannot execute the scenario