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

时间:2018-06-04 13:10:29

标签: c# visual-studio unit-testing vsix

我有一个Visual Studio扩展项目。它工作正常,构建成vsix并完成其工作。我正在使用VS2017

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

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

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

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

答案:答案:无法测试vsix。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

所以我偶然发现了这篇文章。问题是.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"

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