C# VSTO项目的单元测试

C# VSTO项目的单元测试,c#,unit-testing,vsto,C#,Unit Testing,Vsto,在我遵循的大多数单元测试教程中,它让我创建第二个单元测试项目,然后将解决方案/项目引用从测试项目添加到另一个项目 我有一个VSTO加载项,当我要添加引用时,我在“解决方案”>“项目”下没有看到任何列出的内容 为什么会这样?我还可以如何向addin项目添加引用来测试它?我不知道为什么添加引用不起作用,但您可以通过添加第三个项目来解决它。把你所有的逻辑都放在这个新项目中。在测试中添加对此新项目的引用,然后在VSTO addin项目中添加对新项目的引用,您可以在其中调用逻辑。我不知道为什么添加引用不起

在我遵循的大多数单元测试教程中,它让我创建第二个单元测试项目,然后将解决方案/项目引用从测试项目添加到另一个项目

我有一个VSTO加载项,当我要添加引用时,我在“解决方案”>“项目”下没有看到任何列出的内容


为什么会这样?我还可以如何向addin项目添加引用来测试它?

我不知道为什么添加引用不起作用,但您可以通过添加第三个项目来解决它。把你所有的逻辑都放在这个新项目中。在测试中添加对此新项目的引用,然后在VSTO addin项目中添加对新项目的引用,您可以在其中调用逻辑。

我不知道为什么添加引用不起作用,但您可以通过添加第三个项目来解决此问题。把你所有的逻辑都放在这个新项目中。在测试中添加对此新项目的引用,然后在VSTO addin项目中添加对新项目的引用,您可以在其中调用逻辑。

如果这是您第一次进行单元测试,那么VSTO可能是一条陡峭的学习曲线。正如@Sam Holder所建议的,您可能希望将一些逻辑放在一个单独的程序集中,以鼓励您将逻辑从与office基础架构的交互中分离出来

也就是说,虽然您不能使用向项目添加引用的常规方法添加项目,但可以使用
浏览
选项向该项目的输出添加引用:

  • 右键单击测试项目并选择“添加引用”
  • 在出现的框中,单击底部的“浏览”按钮
  • 导航到VSTO项目的bin\debug文件夹并选择项目dll
  • 点击OK
显然,您必须构建addin才能使上述功能正常工作


如果您开始尝试创建依赖于office基础架构的对象,您将面临一些其他挑战。因此,您可能至少需要在测试项目中添加对
Microsoft.Office.Tools
Microsoft.Office.Tools.Common
的引用。

如果这是您第一次进行单元测试,那么VSTO可能是一条陡峭的学习曲线。正如@Sam Holder所建议的,您可能希望将一些逻辑放在一个单独的程序集中,以鼓励您将逻辑从与office基础架构的交互中分离出来

也就是说,虽然您不能使用向项目添加引用的常规方法添加项目,但可以使用
浏览
选项向该项目的输出添加引用:

  • 右键单击测试项目并选择“添加引用”
  • 在出现的框中,单击底部的“浏览”按钮
  • 导航到VSTO项目的bin\debug文件夹并选择项目dll
  • 点击OK
显然,您必须构建addin才能使上述功能正常工作


如果您开始尝试创建依赖于office基础架构的对象,您将面临一些其他挑战。因此,您可能至少需要在测试项目中添加对
Microsoft.Office.Tools
Microsoft.Office.Tools.Common
的引用。

通常您会将测试项目添加到包含要测试项目的解决方案中。如果出于任何原因您不能这样做,您应该能够通过使用“添加引用”对话框上的
browse
选项并导航到程序集来添加对包含代码的程序集的引用。它被添加到同一个解决方案中,但通常我会在“解决方案”>“项目”下添加对它的引用。我的项目不在那里。那么,我如何从我的Uitt测试项目(在同一个解决方案中)引用它,而不添加那个引用呢。我是否遗漏了每个教程描述的这样做的内容,当我遵循它们时,它会起作用,但我的加载项没有列出。是因为它是VSTO加载项吗?您可以在同一VSTO项目中添加测试类和测试成员来测试某些方法。在模拟excel之前,无法对加载项中的所有方法进行单元测试。通常,您会将测试项目添加到包含要测试的项目的解决方案中。如果出于任何原因您不能这样做,您应该能够通过使用“添加引用”对话框上的
browse
选项并导航到程序集来添加对包含代码的程序集的引用。它被添加到同一个解决方案中,但通常我会在“解决方案”>“项目”下添加对它的引用。我的项目不在那里。那么,我如何从我的Uitt测试项目(在同一个解决方案中)引用它,而不添加那个引用呢。我是否遗漏了每个教程描述的这样做的内容,当我遵循它们时,它会起作用,但我的加载项没有列出。是因为它是VSTO加载项吗?您可以在同一VSTO项目中添加测试类和测试成员来测试某些方法。在模拟excel之前,无法对加载项中的所有方法进行单元测试。调试和发布文件夹完全为空。为什么会这样?我不能从我的单元测试中添加这些引用project@shenk你建了这个项目吗?如果是,请检查项目的输出路径(右键单击项目,选择属性,选择构建,向下滚动到构建路径)。您无法添加引用,因为dll不存在,或者因为其他原因?@forsavrir是的,我无法添加引用,因为我找不到dll。输出路径也是默认的bin\debug@shenk执行“全部重建”并查看“生成输出”窗口,它应该会显示已创建的二进制文件的完整路径,或者显示某种错误。如果它说正在创建二进制文件,但实际上它不在那里,那么就会发生一些奇怪的事情。为什么我不能将Microsoft.Office.Tools添加到我的测试项目中?只有Microsoft Office.Interop.Outlook和Microsoft.Office.Core。海报建议使用tools和tools.Common调试和发布的文件夹是com