【问题标题】:Method for testers to write specflow scenarios and execute them测试人员编写specflow场景并执行它们的方法
【发布时间】:2014-07-29 22:55:07
【问题描述】:

测试人员是否可以在文本编辑器中编写 SpecFlow 功能文件,然后在不使用 Visual Studio 的情况下执行它们?

我已经从 Java 和 JBehave 的世界转到了 C# 和 SpecFlow 的世界。 使用 Java 和 JBehave,测试人员可以在纯文本文件中编写场景,并为他们提供用户界面以允许他们执行测试并查看格式良好的结果。我希望能够为 C# 和 SpecFlow 做类似的事情。

这是我最初的想法:

为测试人员提供 Specflow、NUnit 和完整的测试工具项目代码 (yuk!)

为测试人员编写一个用户界面,让他们可以选择纯文本文件。 “生成测试”按钮将执行“specflow.exe generateall”命令,“查看结果”按钮将执行“specflow.exe nunitexecutionreport”命令

他们必须使用 NUnit 控制台来执行测试。

有没有更好的解决方案?

【问题讨论】:

    标签: c# nunit specflow


    【解决方案1】:

    你错过了一步。您可以在没有 VS 的情况下执行此操作,但您还需要使用 msbuild。所以整个过程是

    1. Person(!) 编辑纯文本
    2. specflow.exe generateAll 会将纯文本转换为 .cs 文件
    3. msbuild yourSolution.sln 会将 .cs 转换为 .exe/.dll
    4. nunit.console.exe 将测试 .exe/.dll
    5. specflow.exe nunitExecutionReport 将为您生成一份不错的报告。

    正如你所说,这并不理想。这也将失败(处于待处理状态),只要其中一位测试人员尝试执行您已经为其提供 [Binding] 的非常有限的语句集之外的东西。

    说实话,这不是 SpecFlow 的设计目的。虽然让测试人员参与规范编写过程是非常好的做法,但通常期望生成的场景不是动态的,而是成为应用程序正确执行的已知环境库的一部分。

    这个库也不应该是详尽无遗的,而是包含足够的示例来涵盖逻辑决策点。 例如,英国印花税的税率以 GBP250,000 和 GBP500K 为单位,但您不会编写 25,000,000 个测试来涵盖该范围内的每个价格,当两个(250,000.00 和499,999.99) 将覆盖它。

    更新: 使用FitNesse 或Conccordion 之类的东西可能会更好

    【讨论】:

    • 谢谢。我确实错过了 msbuild 部分。这与 Selenium 一起用于应用程序测试而不是 BDD,因此我们必须能够选择要执行的测试。我与测试人员密切合作,添加所需的任何语句。
    • 更新了可能更合适的替代方案。
    猜你喜欢
    • 2018-10-08
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2020-12-19
    相关资源
    最近更新 更多