C# 如何在VisualStudio中创建和安装测试适配器

C# 如何在VisualStudio中创建和安装测试适配器,c#,visual-studio-2013,visual-studio-2015,visual-studio-extensions,C#,Visual Studio 2013,Visual Studio 2015,Visual Studio Extensions,我想为VisualStudio创建一个量角器测试适配器。我发现我可以通过实现ITestExecutor和ITestDiscoveryr来创建它。 我阅读了Marcel De Vries文档(),但是我找不到如何在Visual Studio中添加扩展 我已尝试将程序集直接添加到\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions文件夹中 我试图创建一个Vsix并安装它。(将UnitTestExtension作为资产) 我试着下

我想为VisualStudio创建一个量角器测试适配器。我发现我可以通过实现ITestExecutor和ITestDiscoveryr来创建它。
我阅读了Marcel De Vries文档(),但是我找不到如何在Visual Studio中添加扩展

  • 我已尝试将程序集直接添加到\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions文件夹中
  • 我试图创建一个Vsix并安装它。(将UnitTestExtension作为资产)
  • 我试着下载Marcel的项目()编译并安装它
它不起作用,命令“vstest.console.exe/listdiscoverers/usevsixtensions:true”没有列出我的发现者。VS没有找到JS测试


我做错了什么?

在为VS创建测试适配器方面,文档非常糟糕。有许多URL可以帮助理解如何使用JS自动测试实现UTE:

总之:
步骤1:

  • 我们需要实现ITestExecutor来启动带有量角器的测试 提示命令并返回结果
  • 我们需要实现ITestDiscoverer来解析参数中的文件,以查找其中的所有测试
您可以在不使用VSix的情况下测试此主版本:转到Visual studio测试扩展文件夹(C:\Program Files(x86)\Microsoft Visual studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions for VS 2013)并添加DLL和依赖项。尝试使用windows命令提示符中的命令启动测试:

cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow  
vstest.console.exe "c:\test\test.js"
第二步:
默认情况下,Visual Studio仅解析.dll和.exe文件。如果要解析另一种文件类型(.lua、.js,…),则需要创建一个解析器,该解析器显式浏览源文件并查找所有测试。
您需要创建和实现两个接口:

  • ITestContainerDiscoverer
  • ITestContainer
这个项目()将有助于理解如何实现它,以及如何调整代码以订阅项目中的任何更改(添加文件、编辑文件、项目加载等)

重要提示:您需要创建一个VSix项目来测试它!否则,VisualStudio不会加载TestContainedDiscoveryr

要点2:创建VSix文件时,需要解释两种资产:

  • 类型:Microsoft.VisualStudio.MefComponent/Path:|您的项目|
  • 类型:UnitTestExtension/Path | YourProject |

希望对其他人有所帮助。

如果需要使用vstest.console.exe运行测试适配器,但不需要visual studio集成,则需要执行以下操作:

  • 创建作为类库的项目
  • 非常重要:程序集名称必须以结尾。TestAdapter或vstest.console.exe将无法识别您的测试适配器。可以在项目的属性中更改此设置
  • 导入Microsoft.VisualStudio.TestPlatform.ObjectModel,对我来说,它位于C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
  • 您只需要实现ITestDiscoveryrITestExecutor
  • 如果测试适配器用于.dll.exe文件,则默认测试适配器将首先运行。我无法找到一种方法来禁用此功能
当我弄清楚如何创建测试适配器时,上面接受的答案和代码对我非常有用。请注意,如果您正在创建VSIX,那么资产类型UnitTestExtension在列表中不可用,但似乎有效,可以手动添加到.vsixmanifest文件中

其他有用的链接:


阅读有关创建VSIX项目的内容。好的,我已经找到了vstest不起作用的原因。我犯了一个非常严重的错误。我在错误的visual studio文件夹中。我将继续了解Microsoft测试实现。如果有人在VS 2017中遇到困难,将适配器放入的正确路径是Common7\IDE\Extensions\TestPlatform\Extensions。如何调试测试适配器中可能存在的任何问题?您可以在调试模式下启动VS()。但我在这方面遇到了困难,所以我使用了一种古老而丑陋的方式:在文件中写入日志。