首页 文章

Specflow测试功能和不同项目中的步骤,在使用MsTest运行时失败,但在Visual Studio中传递

提问于
浏览
0

我有一个SpecFlow测试,其特征文件和步骤定义在不同的项目中 . 它在Visual Studio中运行时传递,但在使用MsTest从命令行运行时失败 .

输出错误消息为:找不到该步骤的匹配步骤定义 . 使用以下代码创建一个:

[Given(@"I am a member")]
 public void GivenIAMAMember()
 {
      ScenarioContext.Current.Pending();
 }

测试方法引发异常:System.IO.FileNotFoundException:无法加载文件或程序集“nunit.framework”或其依赖项之一 . 系统找不到指定的文件.WRN:程序集绑定日志记录已关闭 . 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失 . 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog] .

任何人都可以给我任何想法?

先感谢您!

1 回答

  • 0

    你的步骤dll很可能没有被MSTest加载到内存中,因为没有任何东西引用它 . 在VS specflow确保它被加载我相信 .

    你可以强制它被加载,这可能有助于做这样的事情:

    • 在步骤dll中创建一个类 .
      项目中包含要素文件的

    • 创建一个与生成的测试类specflow同名的部分类

    • 在此分部类中添加一个字段,并从步骤dll将其设置为该类的新实例 .

    这应该强制将步骤dll加载到测试过程中,因此这些步骤应该是可发现的 .

    请注意我没有测试过它,它只是在我的头顶 .

    祝好运 .

相关问题