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

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

我想为 Visual Studio 创建一个 protractor 测试适配器。我发现我可以通过实现 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 作为 Assets )
  • 我已经尝试下载 Marcel 的项目 ( https://github.com/XpiritBV/ProtractorAdapter ) 编译并安装它。

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

我做错了什么?

最佳答案

为 VS 创建测试适配器的文档非常差。有很多 URL 可以帮助理解如何使用 JS 自动化测试实现 UTE:

总结:
第 1 步:

  • 我们需要实现 ITestExecutor 来启动 protractor 测试 提示命令并返回结果。
  • 我们需要实现 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、...),你需要创建一个解析器来显式浏览源文件并找到所有测试。
您需要创建实现两个接口(interface):

  • ITestContainerDiscoverer
  • IT测试容器

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

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

重要2:创建VSix文件时,需要说明两个Assets:

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

希望对大家有所帮助。

关于c# - 如何在 Visual Studio 中创建和安装测试适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100057/

相关文章:

c# - 使用 linq 获取路径的所有父级

visual-studio-2015 - Visual Studio 组件缓存过期

visual-studio - Visual Studio 2013 Community Edition - "Your license has expired."即使它是一个版本(更新 4)

Azure 事件日志 - 从博客下载文件

c# - 调试复杂的 linq 查询

c++ - Visual Studio (2015) fpermissive 等效标志

azure - 如何使用 Cloud Explorer 在 VS 2015 中使用连接字符串添加帐户?

c# - 使用 SSL 连接到 MQ - 从哪里开始

c# - 在 WinRT Prism/MVVM 中对 ComboBox 的 SelectedValue 进行数据绑定(bind)

c# - 保险问题跳过问题 - Unity C#