This post outlines the steps to create a new unit test project in Visual Studio 2017 using MS Test V1 and that targets .Net Frameworks prior to .Net 4.5.
Visual Studio 2017 onwards only has new unit test projects for MS Test V2 onwards and .Net 4.5. This is fine for new applications or ones targeting a recent .Net framework version but what if you have an existing solution targeting an older .Net version. Below shows the Unit Test Project available for .Net 4.5, but as you can see in the second screenshot for .Net 3.5 its not available.
If you want to create a new unit test project targeting .Net 3.5/4 for example then follow the steps below:
Create a new MS Test V2 project targetting .Net Framework 4.5 as in the first screenshot above (i.e. File > New Project > Test > Unit Test Project targeting .Net 4.5).
Once its created, change the project to target your earlier .Net Framework (e.g. .Net 3.5). This is done via the Project Properties page. Click Yes and Visual Studio will reload the project.
Once it reloads the project will complain about some references which is fine as we’re now going to remove the MS Test V2 assemblies.
Now remove the two project references to test assemblies.
Then add a reference to the MSTest v1 assembly, Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll. This should be under Extensions in the Add Reference dialog. Alternatively you can browse to them on your hard drive at the following locations:
For pre .Net 4 projects : C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\v2.0
For post .Net 4 projects: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\v4.0
If you are not running Visual Studio Enterprise, then swap Enterprise in the path for Community etc.
Now rebuild the project and you’re all done.