如何在Visual Studio中创建和安装测试适配器

时间:2016-06-29 12:48:46

标签: c# visual-studio-2013 visual-studio-2015 visual-studio-extensions

我想要'为Visual Studio创建一个量角器测试适配器。我发现我可以通过实现ITestExecutor和ITestDiscoverer来创建它 我按照Marcel De Vries文档(https://xpirit.com/wp-content/uploads/2016/03/Xpirit-magazine-2-Protractor-UI-testing.pdf)进行操作,但我找不到如何在Visual Studio中添加扩展程序。

  • 我试图直接在\ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ Extensions文件夹中添加我的程序集。
  • 我试图创建一个Vsix并安装它。 (将UnitTestExtension作为资产)
  • 我试图下载Marcel的项目(https://github.com/XpiritBV/ProtractorAdapter)编译并安装它。

它不起作用,命令" vstest.console.exe / listdiscoverers / UseVsixExtensions:true"没有列出我的发现者。并且VS没有找到JS测试。

我做错了什么?

2 个答案:

答案 0 :(得分:9)

为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"

步骤2:
默认情况下,Visual Studio仅解析.dll和.exe文件。如果要解析另一种文件类型(.lua,.js,...),则需要创建一个显式浏览源文件并查找所有测试的解析器。
您需要创建实现两个接口:

  • ITestContainerDiscoverer
  • ITestContainer

这个项目(https://github.com/XpiritBV/ProtractorAdapter)将有助于理解如何实现以及如何调整代码以订阅项目中的任何更改(添加文件,编辑文件,项目负载等)。

重要提示:您需要创建一个VSix项目来测试它!如果没有,Visual Studio不会加载TestContaineDiscoverer。

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

  • 类型:Microsoft.VisualStudio.MefComponent / Path:| YourProject |
  • 类型:UnitTestExtension / Path | YourProject |

希望有人帮忙。

答案 1 :(得分:3)

如果您需要使用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
  • 您只需要实施 ITestDiscoverer ITestExecutor
  • 如果您的测试适配器用于 .dll .exe 文件,则默认测试适配器将首先运行。我找不到禁用此功能的方法。

在确定如何创建测试适配器时,上面接受的答案和代码对我非常有用。请注意,如果您要创建VSIX,则资产类型 UnitTestExtension 在列表中不可用,但似乎可以正常工作,并且可以手动添加到.vsixmanifest文件中。

其他有用的链接: