How to create and install test adapter in Visual Studio

前端 未结 2 881
轻奢々
轻奢々 2021-01-01 06:52

I want\' to create a protractor test adapter for Visual Studio. I have found I can create it with implementing ITestExecutor and ITestDiscoverer.
I follow the Marcel De

相关标签:
2条回答
  • 2021-01-01 07:31

    If you need to run the test adapter with vstest.console.exe but don't need visual studio integration you will need to do the following:

    • Create a project that is a class library
    • Very important: The assembly name must end with .TestAdapter or vstest.console.exe will not recognize your test adapter. You can change this setting in the properties of your project.
    • Import Microsoft.VisualStudio.TestPlatform.ObjectModel which for me was located at C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll
    • You only need to implement ITestDiscoverer and ITestExecutor
    • If your test adapter is for .dll or .exe files the default test adapter will run first. I could not find a way to disable this.

    The above accepted answer and code was very useful for me when figuring out how to create a test adapter. Be aware that if you are creating a VSIX then the asset type UnitTestExtension is not available in the list but seems to work and can be added in the .vsixmanifest file manually.

    Additional useful links:

    • 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/
    0 讨论(0)
  • 2021-01-01 07:32

    The documentation is very poor for creating test adapter for VS. There are many URL that can help to understand how implement UTE with JS automated test :

    • 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/

    In summary :
    Step 1 :

    • we need to implement ITestExecutor to launch test with protractor prompt command and return the result.
    • we need to implement ITestDiscoverer to parse file in argument to find all tests inside.

    You can test this primary version without VSix : Go to Visual studio Test extension folder (C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions for VS 2013) and add your DLL and dependencies. Try to launch tests with commands like that in windows command prompt :

    cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow  
    vstest.console.exe "c:\test\test.js"
    

    Step 2 :
    By default Visual Studio only parse .dll and .exe files. If you want to parse another file type (.lua, .js, ...) you need to create a parser who explicitly browse source files and find all tests.
    You need to create implement two Interfaces :

    • ITestContainerDiscoverer
    • ITestContainer

    This project (https://github.com/XpiritBV/ProtractorAdapter) will be useful to understand how implement that and how adapt your code to subscribe on any changes in your project (Add file, Edit file, Project Load, etc.).

    Important : You need to create a VSix project to test that ! If not, Visual Studio don't load your TestContaineDiscoverer.

    Important 2 : When you create a VSix file, you need to explain two Assets :

    • Type : Microsoft.VisualStudio.MefComponent / Path : |YourProject|
    • Type : UnitTestExtension / Path |YourProject|

    Hope it's help somebody.

    0 讨论(0)
提交回复
热议问题