我正在尝试测试使用 Visual Studio 2015 Shell(隔离)的应用程序。
为了使用 Visual Studio 测试扩展包,我找到了旧版本的示例。它们看起来像这样:
[TestMethod]
[HostType("VS IDE")]
public void CreateVisualization()
{
TestUtils testUtils = new TestUtils();
testUtils.CloseCurrentSolution(__VSSLNSAVEOPTIONS.SLNSAVEOPT_NoSave);
testUtils.CreateProjectFromTemplate(TestContext.TestDir, "MyProjectType", "MyProjectType.zip");
testUtils.CloseCurrentSolution(__VSSLNSAVEOPTIONS.SLNSAVEOPT_NoSave);
}
我的问题是我无法调试这些测试,因为调试器没有附加到VS IDE
主机进程。有一次,我删除了 HostType-annotation,我可以设置断点并对其进行调试,但是测试并没有在正确的进程中运行。我通过在测试中编写一个无限循环然后手动附加到启动的进程(这将启用调试)来验证附加不起作用。
有没有办法在开始测试时自动将 Visual Studio 调试器附加到启动的进程,这样我就可以在没有手动“附加到进程”步骤的情况下进行调试?
编辑:
我尝试了几种解决方案,但到目前为止没有任何效果:
- 如何在通过 MSTest 进行集成测试期间托管 VS IDE?启动了 Visual Studio 但不是我的应用程序
- Visual Studio:生成进程时自动附加到进程的结果好坏参半。
Debugger.Launch
有效,但仍需要接受繁琐的“选择调试器...”对话框 - Microsoft 自己建议的自动附加调试器的方法不起作用,因为它总是在启动应用程序时启动 jit-debugger,而不仅仅是在运行(和调试)测试时。