如何在Visual Studio 2019中用xUnit测试VSTO Outlook插件?
无需COM互操作,使用xUnit测试VSTO Outlook插件的方案
我在Visual Studio 2019中尝试用xUnit对VSTO Outlook插件进行单元测试时遇到了困难,先后查阅了以下Stack Overflow相关问答:
- 《VSTO Unit Testing Office AddIn in C# .NET via RequestComAddInAutomationService》
- 《Unit testing Excel addin using VSTO》
- 《Unit Testing VSTO projects》
最终发现问题的根源只是未正确创建xUnit测试项目。
解决方案与传统方案的差异
和上述针对Excel、PowerPoint插件的测试方案不同,我不需要做以下操作就能正常运行测试:
- 调用
RequestComAddinAutomationService - 设置带COM互操作属性的类
- 开启项目的“为COM互操作注册”选项
我的xUnit测试项目可以:
- 像调试插件时一样自动启动Outlook
- 直接访问插件项目中的类和方法
实现步骤
- 在Visual Studio 2019中,右键点击解决方案 → 添加 → 新建项目
- 选择xUnit测试项目(注意匹配插件项目的.NET版本,比如.NET Framework 4.7.2等)
- 在测试项目中右键点击引用 → 添加引用,选择你的VSTO Outlook插件项目
- 编写测试代码,直接调用插件项目中的类和方法即可
- 运行测试,测试项目会自动启动Outlook并执行测试逻辑
备注
- 备注1:上述查阅的问答均针对Excel和PowerPoint插件,没有适配Outlook插件的方案,因此单独整理此内容。
- 备注2:目前尚未明确无需COM互操作即可兼容的具体原因,推测可能是以下两种情况之一:
- Outlook插件与Excel、PowerPoint插件的运行机制存在差异
- 我使用的是xUnit测试框架,而上述问答多采用微软原生单元测试框架,二者的兼容性逻辑不同
内容的提问来源于stack exchange,提问作者wopr_xl
相关产品推荐
相关产品推荐

