繁体   English   中英

如何对一个vsix项目进行单元测试?

[英]How to unit test a vsix project?

我有一个Visual Studio Extension项目。 它工作正常,内置到vsix中并完成工作。 我正在使用VS2017

我想对其进行单元测试。 我已经使用MSTest v2编写了单元测试。

问题是:当我尝试构建/运行测试项目时,出现一个错误,即找不到myProject.dll,这显然是因为没有一个错误(myProject构建为.vsix文件)。

如何对我的vsix项目进行单元测试?

编辑:调试它工作正常。
编辑2:整个输出是vsmanifest文件和一个.vsix文件。 安装并运行作品。

答案的Tl; dr:无法测试vsix。

您的测试项目应为DLL类型的文件。 例如,将其更改为“ CS”类型的文件后,跑步者将能够运行您的测试

所以我偶然发现了这篇文章。 问题是.dll和.pdb文件位于vsix软件包中。 因此,对于单元测试,它们也必须不在此范围之内。

这表明.csproj文件中导入的目标存在错误:

<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />

此目标是在构建vsix时删除dll和pdb。 它不应该那样做。 现在,vsix只是一个带有特殊名称的zip文件。 因此,我们可以将其解压缩。

我在工具文件夹中的解决方案中添加了7z.exe,并在构建后的操作中运行它:

"$(SolutionDir)Tools\7z.exe" x -aoa "$(TargetDir)$(TargetName).vsix"

现在我的单元测试工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM