VSTest is a very extensible unit test execution framework. The base engine, discovers tests and runs them. It can parallelize across cores, provides process isolation and can integrate with Visual Studio. It has extensibility for different test frameworks, code coverage, test impact analysis, data collection, test result reporting and much more.
To give you a little context on what I’m talking about I’ve put together an architecture diagram. The pieces we open sourced yesterday are in yellow. My diagram of the end to end solution includes clients like VS and VSCode (and others) on the left – though you can just use the command line directly and just skip that swim lane. We released our cross platform runner and the host process that discovers, loads and runs the tests.
Tests generally use some test framework and vstest supports many. Many of the test adapters are open source or available as NuGet packages. You can checkout the VS marketplace for a sampling of them. We did not open source any new adapters with this release – but we don’t even build most of them. The big one we do build is MSTestV2 and VERY MANY people use it. We did not open source that framework at this time but we plan to in the next few months – it just wasn’t ready at this time.
If you use unit testing in VS, there’s a good chance you use this infrastructure already. If you are using the unit testing capabilities that have been delivered in the .NET Core previews, you are also using it. Now it is open source so you can see how it works and, ultimately, contribute to it. We have not yet opened up the project for contributions but we will. Again, crawl, walk, run.
Thanks and, as always, any feedback or questions are welcome