如何在 Visual Studio 中创建和安装测试适配器
How to create and install test adapter in Visual Studio
我想'为 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 测试。
我做错了什么?
为 VS 创建测试适配器的文档非常差。有很多URL可以帮助理解如何用JS自动化测试实现UTE:
- http://matthewmanela.com/blog/anatomy-of-the-chutzpah-test-adapter-for-vs-2012-rc/
- https://xpirit.com/wp-content/uploads/2016/03/Xpirit-magazine-2-Protractor-UI-testing.pdf
- https://blogs.msdn.microsoft.com/bhuvaneshwari/2012/03/13/authoring-a-new-visual-studio-unit-test-adapter/
总结:
第 1 步:
- 我们需要实现 ITestExecutor 来启动量角器测试
提示命令和 return 结果。
- 我们需要实现 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/路径:|你的项目|
- 类型:UnitTestExtension/路径|你的项目|
希望对大家有所帮助。
如果您需要 运行 带有 vstest.console.exe 的测试适配器但不需要 visual studio 集成,您需要执行以下操作:
- 创建一个作为 class 库的项目
- 非常重要:程序集名称必须以结尾。 TestAdapter 或 vstest.console.exe 将无法识别您的测试适配器。您可以在项目的属性中更改此设置。
- Import 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 文件中。
其他有用的链接:
- https://blogs.msdn.microsoft.com/aseemb/2012/03/03/how-to-make-your-extension-visible-to-the-test-explorer-in-visual-studio-11/
- https://blogs.msdn.microsoft.com/visualstudioalm/2012/07/31/writing-a-visual-studio-2012-unit-test-adapter/
- https://blog.dantup.com/2014/02/some-things-i-learned-while-building-my-visual-studio-test-adapter/
晚会晚了,但从今天(2022 年)开始,我建议通读官方 MS Visual Studio 测试平台 readme.
中提到的文档
此外,观看这 Exploring the Visual Studio Test Platform 集,虽然过时了,但可能会有所帮助。
我想'为 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 测试。
我做错了什么?
为 VS 创建测试适配器的文档非常差。有很多URL可以帮助理解如何用JS自动化测试实现UTE:
- http://matthewmanela.com/blog/anatomy-of-the-chutzpah-test-adapter-for-vs-2012-rc/
- https://xpirit.com/wp-content/uploads/2016/03/Xpirit-magazine-2-Protractor-UI-testing.pdf
- https://blogs.msdn.microsoft.com/bhuvaneshwari/2012/03/13/authoring-a-new-visual-studio-unit-test-adapter/
总结:
第 1 步:
- 我们需要实现 ITestExecutor 来启动量角器测试 提示命令和 return 结果。
- 我们需要实现 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/路径:|你的项目|
- 类型:UnitTestExtension/路径|你的项目|
希望对大家有所帮助。
如果您需要 运行 带有 vstest.console.exe 的测试适配器但不需要 visual studio 集成,您需要执行以下操作:
- 创建一个作为 class 库的项目
- 非常重要:程序集名称必须以结尾。 TestAdapter 或 vstest.console.exe 将无法识别您的测试适配器。您可以在项目的属性中更改此设置。
- Import 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 文件中。
其他有用的链接:
- https://blogs.msdn.microsoft.com/aseemb/2012/03/03/how-to-make-your-extension-visible-to-the-test-explorer-in-visual-studio-11/
- https://blogs.msdn.microsoft.com/visualstudioalm/2012/07/31/writing-a-visual-studio-2012-unit-test-adapter/
- https://blog.dantup.com/2014/02/some-things-i-learned-while-building-my-visual-studio-test-adapter/
晚会晚了,但从今天(2022 年)开始,我建议通读官方 MS Visual Studio 测试平台 readme.
中提到的文档此外,观看这 Exploring the Visual Studio Test Platform 集,虽然过时了,但可能会有所帮助。