如何将NUnit Engine Extension封装为无需手动配置的NuGet包
NUnit Engine Extension 免配置NuGet打包方案
配置调整
替换你原有的.addins文件打包配置为如下内容,写入扩展项目的.csproj文件:
<ItemGroup> <Content Include="file.addins"> <Pack>true</Pack> <PackagePath>contentFiles/any/any/;content/</PackagePath> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <PackageCopyToOutput>true</PackageCopyToOutput> </Content> <None Include="$(OutputPath)$(AssemblyName).dll" Pack="true" PackagePath="lib/$(TargetFramework)/"/> </ItemGroup>
配置说明
PackagePath配置指定.addins文件会被放到NuGet包的content和contentFiles目录下,兼容新旧版本NuGet的内容文件引用规则PackageCopyToOutput配置会让安装该NuGet包的目标项目,生成时自动将.addins文件复制到输出目录,NUnit引擎运行时会自动扫描输出目录下的.addins文件加载扩展- 需确保你的.addins文件内填写的扩展程序集名称正确,无需带.dll后缀,示例如下:
你的扩展程序集名称
可选兼容配置
如果目标测试项目基于.NET Core/.NET 5+,可在扩展项目的.csproj中添加如下属性避免内容文件被隐式排除:
<PropertyGroup> <EnableDefaultContentItems>false</EnableDefaultContentItems> </PropertyGroup>
验证步骤
重新生成扩展项目并打包,将新的NuGet包安装到测试项目后,直接生成运行测试即可,无需手动添加任何配置文件。
内容的提问来源于stack exchange,提问作者Meraxes
相关产品推荐
相关产品推荐

