我有一个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]。
任何人都可以给我任何想法吗?
提前谢谢!
答案 0 :(得分:0)
你的步骤dll可能没有被MSTest加载到内存中,因为没有任何东西引用它。在VS specflow确保它被加载我相信。
你可以强制它被加载,这可能有助于做这样的事情:
这应该强制将步骤dll加载到测试过程中,因此这些步骤应该是可以发现的。
请注意我没有对此进行测试,只是在我的头顶。
祝你好运。