繁体   English   中英

Visual Studio 2013自定义测试适配器:如何调试?

[英]Visual Studio 2013 custom Test Adapter: how to debug?

我正在编写一个自定义Visual Studio 测试适配器 ,并想知道:我该如何调试它? 现在我正在遵循以下步骤:

  1. 在我的适配器代码中添加一些logger.SendMessage()日志行。
  2. 构建适配器
  3. 将上面步骤2中的dll复制到Test Extensions文件夹(Common7 \\ IDE \\ CommonExtensions \\ Microsoft \\ TestWindow \\ Extensions)
  4. 从控制台运行一些测试: vstest.console.exe dummy.project.with.tests.dll
  5. 查看日志输出

有没有办法在VS2013中调试我的测试适配器,因为它正在运行测试?

注意:我的研究在这篇文章中发现了一条评论,说使用Debugger.Launch() - 但我不知道如何激活它以实现我想要的。

第1步:安装适配器

在您提供的链接中,创建了一个VSIX项目来安装适配器。 在VSIX项目中,有一个选项(在VSIX选项卡中)将适配器自动部署到构建的VS Experimental hive。

如果您使用的是vstest.console.exe ,则无需执行此操作。

第2步:使用适配器运行测试

最简单的方法是立即连接调试器,方法是通过项目设置中的Debug选项卡。 将其设置为启动外部程序,只要在调试模式下运行调试器,调试器就会附加到程序中。

如果您通过VS运行测试:

devenv.exe /rootsuffix Exp

如果您通过vstest.console.exe运行测试,并且在主VS上安装适配器:

vstest.console.exe dummy.project.with.tests.dll /TestAdapterPath:"TestAdapterBuildDirectory"

如果您通过vstest.console.exe运行测试,并且您确实在主VS上安装了适配器:

vstest.console.exe dummy.project.with.tests.dll /UseVsixExtentions:true

步骤3:将调试器附加到将运行适配器的所有进程

使用Visual Studio中的“ 调试”>“附加到进程”选项。

在VS2013中,大多数进程将在测试运行之间徘徊,因此您可以运行测试一次以启动进程,然后在再次运行测试之前附加到它们。 在VS2015中,这些进程根本不会长时间挂起,因此您必须非常快速地连接到它们,或者为您的测试执行器添加大量睡眠以给您额外的时间来连接。

如果您已连接到正确的进程,并且您的测试适配器是使用符号编译的,那么在适配器代码中的任何位置添加断点都应该没有问题。

您需要附加的过程如下

VS2013

  • devenv.exe - VS实例。 这是您创建的任何测试容器发现者都将运行的地方。
  • vstest.discoveryengine.exe - 发现过程。 这是任何测试发现者在发送测试容器后运行的地方。
  • vstest.executionengine.exe - 执行过程。 在发送测试用例之后,这将是运行任何Test Executors的地方。 因此,如果您希望看到测试正在运行,那么这就是您需要附加的内容。

VS2015

其中一些进程仍然存在,但您还需要附加到许多进程,所有进程都称为TE.ProcessHost.Managed.exe 如果您不确定要附加哪些进程,请附加所有进程。 有些将用于发现,有些将用于执行,但执行过程将很快消失。

vstest.console.exe

这不使用Test DiscovererTest Container Discoverer 如果您附加到实际的控制台程序,则应该能够通过向Test Executor添加断点来检查正在运行的测试 如果这不起作用,我怀疑适配器根本没有运行,你应该仔细查看/TestAdapterPath/UseVsixExtensions选项。

没有太多的经验。 与步骤3相关,您还可以考虑从命令行安装(和卸载)测试适配器VSIX包,其中包括:

REM install
vsixinstaller /q "C:\Path\To\Your\Adapter\bin\Debug\YourAdapter.vsix"

REM uninstall
vsixinstaller /q /a /u:YourVsixManifestId

暂无
暂无

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

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