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 :
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.