我在SpecFlow中使用了2个项目。
第一个项目名称为:FrontEnd.Tests 有SpecFlow的功能和步骤(定义)
第二个项目:FrontEnd.Tests.Extended 所以,我在App.config中添加了第二个项目
<specFlow>
<unitTestProvider name="MsTest" />
<stepAssemblies>
<stepAssembly assembly="FrontEnd.Tests" />
</stepAssemblies>
</specFlow>
使用第一个项目的步骤定义。 但我得到错误:
System.IO.FileNotFoundException:无法加载文件或程序集&#39; FrontEnd.Tests&#39;或其中一个依赖项。
项目位于同一目录中。
答案 0 :(得分:1)
尝试此操作,添加一个名为specflow.json的文件,并在其中引用您的程序集:
{
"stepAssemblies": [
{ "stepAssembly": "FrontEnd.Tests" }
]
}
答案 1 :(得分:0)
我认为您需要将.dll
放在文件名的末尾:
<specFlow>
<unitTestProvider name="MsTest" />
<stepAssemblies>
<stepAssembly assembly="FrontEnd.Tests.dll" />
</stepAssemblies>
</specFlow>
答案 2 :(得分:0)
答案 3 :(得分:0)
对于使用.netCore和VSCode和/或dotnet-cli的用户,您需要做两件事:
首先:在specflow.json文件中指定附加程序集(只是文件名,不带.dll扩展名)
{
"stepAssemblies": [
{ "assembly": "AssemblyWithStepDefs" }
]
}
第二:修改项目文件(.csproj),以便始终将specflow.json文件复制到输出目录
<ItemGroup>
<None Update="specflow.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>