Evolving the Visual Studio Test Platform – Part 4: Together, in the Open

[This is the 4th post in a 4-part series on evolving the Visual Studio Test Platform. You can read the earlier parts here:
Evolving the Visual Studio Test Platform – Part 3,
Evolving the Visual Studio Test Platform – Part 2,
Evolving the Visual Studio Test Platform – Part 1]

The Test Platform is where it is at thanks to its community – a community of adapter writers, test framework writers, extension writers, and application developers, working on platforms ranging from .NET to C++ to JavaScript. The Test Platform has grown to serve a diverse and complex range of lifecycle-requirements and is now at a point where it is vital to enable this community to define and shape its evolution.

Open Sourcing of the Test Platform

Three weeks ago, we announced open sourcing the Test Platform. We have released the sources under the MIT open source license. We have published the public repositories on GitHub where the project is hosted:
https://github.com/Microsoft/vstest, and
https://github.com/Microsoft/vstest-docs.
The repos include the complete implementation of the test platform. These are fully open and ready to accept contributions. Over the next several weeks and months we will continue to transfer source and documentation into the repositories and likewise make it open for contributions.

What does this open sourcing mean?

This open source announcement means that the community now has a fully supported, fully open source, fully cross-platform Test Platform to power tests – including all elements of the lifecycle from the runner to discover and execute tests, all the way to the extensibility model.

Our “Modernizing the Test Platform” journey

This is not just a one-off event. Rather, it should be seen in the larger context of our steps to modernize the test platform as a whole.

We started by taking a hard look at the MSTest test framework, and how to move that user base forward. Thus, with MSTest V2 we introduced support for ASP.NET Core and .NET Core, added several important and much asked-for features, published the bits to NuGet, updated the Unit Test project templates to reference MSTest V2 starting VS “15” Preview 4, updated the Create Unit Test wizard and the Create IntelliTest wizards to support MSTest V2, and have since been updating the NuGet packages regularly – it’s just about 8 months since launch and we have updated the packaged 8 times already.

We added Parallel Test Execution and several other features spanning the entire lifecycle. We added testing support for .NET Core. The “dotnet test” and the “dotnet vstest” commands are now powered by the test platform.

At one level, this means that you can now carry forward the testing experience and assets that you are used to on the desktop (with vstest.console.exe) – at another level, this means that the underlying testing infrastructure is now cross platform – you can carry forward the testing experience that you were used to on the desktop to .NET Core, and not only on Windows but cross platform too (Linux/Mac).

Collaborative innovation, transparent development

This moment is not only about sharing the sources under some license, either. We will engage in transparent development. Towards that, we will share, make visible, and collaborate on issues, implementation and our roadmap.

What we hope for in return is your continued support and participation in collaborative innovation.

Summary

We look at this step of open sourcing the test platform as a prerequisite to unlock collaborative innovation. It is only through our combined expertise – as a community – that the test platform can be taken to the next level of success and applicability.

Here is looking forward to our collaboration. Come, let us grow the test platform, together, in the open.

2