【问题标题】:How to create and install test adapter in Visual Studio如何在 Visual Studio 中创建和安装测试适配器
【发布时间】:2016-06-29 12:48:46
【问题描述】:

我想为 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 测试。

我做错了什么?

【问题讨论】:

  • 了解如何创建 VSIX 项目。
  • 好的,我找到了为什么 vstest 不起作用。我的一个非常丑陋的错误。我一直在错误的视觉工作室文件夹中。我将继续了解 Microsoft 测试实施。
  • 如果有人在使用 VS 2017 时遇到困难,那么将适配器放入的正确路径是 Common7\IDE\Extensions\TestPlatform\Extensions

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


【解决方案1】:

为 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文件时,需要说明两个Assets:

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

希望对某人有所帮助。

【讨论】:

  • 如何调试测试适配器中可能存在的任何问题?
  • 您可以在调试模式下启动 VS (stackoverflow.com/questions/9281662/…)。但是我遇到了困难,所以我使用了最古老最丑陋的方法:将日志写入文件。
【解决方案2】:

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

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

其他有用的链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2015-01-10
    相关资源
    最近更新 更多