Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Microsoft Open Sources Visual Studio Test

Microsoft Open Sources Visual Studio Test

Leia em Português

This item in japanese

Microsoft has open sourced their Visual Studio Test Platform (VS Test) used to run tests in many languages, collect diagnostic data and report the results.

VS Test is integrated with Visual Studio and part of the .NET Core Tools. VS Test can be used to discover tests and run them across multiple cores in parallel. It is an extendable platform, working with tests written in any language (C#, C++, JavaScript, Python, etc.) and various testing frameworks, such as NUnit, xUnit, Google Tests, Jasmine, Karma, etc. The Visual Studio Marketplace contains 25 free adapters for various testing frameworks, and others can be created if desired. One supported framework is MS Test V2 through its adapter, which Microsoft will open source later this year when it is ready for the public, according to Brian Harry, VP for Cloud Developer Services. 

VS Test includes four main components:

  1. Test Runner – a command line process receiving a test container with settings detailing the tests to be executed (the language runtime, hardware architecture, test framework used, etc.).  The runner spawns other processes used by the platform.
  2. Test Execution Host – a process that loads the test container and executes tests.
  3. Data Collector Host – another process containing test execution data listeners.
  4. IDE/Editor – the tool used by the developer to trigger test runs.

The components and the relationship between them is shown in the following diagram:


Microsoft has currently open sourced the runner and the execution host process. Over the following months they will release other parts of the platform when the code is ready for the public. The roadmap includes open sourcing the data collection infrastructure, the protocol used to communicate with the IDE, adding support for UWP applications, and the ability to configure the CLI integration with various testing frameworks.

Rate this Article