C# 不同项目中的Specflow测试功能和步骤,在使用MsTest运行时失败,但在Visual Studio中通过
我有一个SpecFlow测试,功能文件和步骤定义在不同的项目中。在VisualStudio内运行时通过,但在使用MsTest从命令行运行时失败 输出错误消息为: 找不到该步骤的匹配步骤定义。使用以下代码创建一个:C# 不同项目中的Specflow测试功能和步骤,在使用MsTest运行时失败,但在Visual Studio中通过,c#,specflow,C#,Specflow,我有一个SpecFlow测试,功能文件和步骤定义在不同的项目中。在VisualStudio内运行时通过,但在使用MsTest从命令行运行时失败 输出错误消息为: 找不到该步骤的匹配步骤定义。使用以下代码创建一个: [Given(@"I am a member")] public void GivenIAMAMember() { ScenarioContext.Current.Pending(); } 测试方法引发异常: System.IO.FileNotFoundExcep
[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]
有人能给我一些想法吗
提前谢谢你 MSTest可能没有将steps dll加载到内存中,因为没有任何内容引用它。在VS specflow中,我相信可以确保它已加载 您可以强制加载它,这样做可能会有所帮助:
- 在steps dll中创建一个类
- 在项目中,使用功能文件创建与生成的测试类specflow同名的分部类
- 在此分部类中,添加一个字段,并将其设置为steps dll中该类的新实例李>
祝你好运。了解如何使用MSTest运行测试也可能很有用。你又在编译了吗?或者在不同的环境中,或者这是在使用VisualStudio生成的文件?我正在使用MsTest在两个程序集所在的同一文件夹(bin文件夹)中运行测试。testcontainer文件正在使用VisualStudio构建的dll。感谢您抽出时间。我会试试。在dll的属性上,副本总是设置为true吗?