4

I have read No tests to execute msTest

I'm trying to run a unit test (MS unit tests) from the command line. It's my first time attempting this.

My command works fine (no syntax errors), which is

mstest /testcontainer:C:\Users\me\source\repos\Test03\UnitTestProject1\bin\debug\UnitTestProject1.dll

The problem is I always get the following response in the console

Loading C:\Users\me\source\repos\Test03\UnitTestProject1\bin\debug\UnitTestProject1.dll...
Starting execution...
No tests to execute.

My unit test is simply

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void AddPositive()
        {
            var bll = new ConsoleApp1.Bll();
            var result = bll.Add(2, 5);
            Assert.IsTrue(result == 7);
        }
     }

Why does it not find the test as I've followed the instructions from https://msdn.microsoft.com/en-us/library/ms182489.aspx#testcontainer?

The solution as a whole targets 4.6.1 , I'm using VS 2017 Enterprise

MyDaftQuestions
  • 4,487
  • 17
  • 63
  • 120

2 Answers2

2

If you want to use mstest.exe, you need following reference in your project file:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

If you have instead (which seems to be the default for newly created test projects):

<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>

you need to use vstest.console.exe

Please note that VSTest.Console.exe is optimized for performance and is used in place of MSTest.exe in Visual Studio 2012.

Jack Miller
  • 6,843
  • 3
  • 48
  • 66
1

I ran into the same problem and it took me some time to figure out. The actual solution is in the comments.

My Tests are getting discorvered using vstest.console.exe:

Visual Studio Enterprise 2017:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"

See https://learn.microsoft.com/en-us/visualstudio/test/vstest-console-options for further info.

Felix D.
  • 4,811
  • 8
  • 38
  • 72