【问题标题】:How to share the same step definition across projects within same solution in SpecFlow如何在 SpecFlow 中的同一解决方案中跨项目共享相同的步骤定义
【发布时间】:2018-07-09 16:18:08
【问题描述】:
  • SpecFlow 版本: [ x ] 2.2.1
  • 使用过的测试运行器 [ x ]MSTest
  • Visual Studio 版本 [ x ]VS 2017
  • 是否安装了最新的 Visual Studio 更新? [ x ]是
  • .NET 框架: [ x ] .NetCore 2.0
  • 测试执行方法: [ x ]Visual Studio 测试资源管理器

    app.config 中的部分

复制项目

我有一个包含多个测试项目的解决方案,如下所示

  • InfoModelApiTests
  • WarmDataTests

问题描述

我想在 "WarmDataTests" 项目的功能文件中使用与 "InfoModelApiTests" 项目功能文件中使用的相同步骤。我不想重复步骤定义代码。我在 "WarmDataTests" 项目中包含了 "InfoModelApiTests" 的项目参考。并在 app.config 中添加了 stepAssemblies 引用。但我无法让步骤定义变成黑色,暗示它已被绑定。

步骤定义类如下所示 公共密封类 InfoModelApiTestsSteps

复制步骤

  • 添加“InfoModelApiTests”项目引用 “WarmDataTests”项目
  • 然后在“WarmDataTests”项目的 app.config 中添加 如上所述的 StepAssemblies
  • 将“InfoModelApiTests”功能文件中的相同步骤复制到 “WarmDataTests”功能文件。它应该绑定到现有的 步骤定义。

【问题讨论】:

    标签: c# bdd specflow


    【解决方案1】:

    https://github.com/techtalk/SpecFlow/issues/1194#issuecomment-402934038的回答


    你做对了。
    VS 扩展在附加步骤程序集方面存在一些问题,因此突出显示无法正常工作。
    但是当你执行测试时,它就可以工作了。

    【讨论】:

    • 谢谢,现在突出显示工作正常。但是当我尝试执行测试时,我得到了以下步骤 System.IO.FileNotFoundException 的异常:'无法加载文件或程序集'nunit.framework,Culture=neutral,PublicKeyToken=null'。该系统找不到指定的文件。'我添加了 NUnit 包并尝试再次运行,结果出现如下异常。 (无论如何,我们只使用 MsTest 运行器)NUnit.Framework.InconclusiveException: '没有为一个或多个步骤找到匹配的步骤定义。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多