简体   繁体   中英

No tests to execute msTest

I'm trying to run .NET unit tests on the command line using MSTest

My command is

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:"full path of dll" /resultsfile:TestResults.trx

When run it returns

Starting execution...
No tests to execute.

The unit test runs perfectly fine in VS 2012 IDE.

What do I need to do to get it running on the cmd line please?

In my case I started getting "No tests to execute" on command line when I switched to .NET Framework 4.6.1. I had to switch from MSTest.exe to VSTest.Console.exe for it to work.

Some instructions on how to use vstest.console.exe are here - https://msdn.microsoft.com/en-us/library/jj155800.aspx

Also check this out - https://msdn.microsoft.com/en-us/library/ms182486.aspx

It turns out I needed to use the nunit-console as my tests are written in the nunit framework.

Live and learn I guess

I was getting same message "No tests to execute".

What I found out was a silly mistake on my part - in command line, I was using MVCProj09292016.dll(my project DLL) for testcontainer:/ instead of using MVCProj09292016. Tests .dll(my test project assembly).

Bottom line is that check whether you are using correct dl name in command line:it should be your MStest project assembly, in my case it is MVCProj09292016.Tests.dll

  1. Create a .Net Framework unit test project.

  2. Manage nuget packages -> Remove "MSTest.TestFramework" and "MSTest.TestAdapter" nuget packages.

  3. Add an assembly reference to "Microsoft.VisualStudio.QualityTools.UnitTestFramework", 10.0.0.0.

  4. Rebuild the project and verify that the output path(bin\\debug) does not have any _MSTest_TestAdapter*.dll assemblies This works for me.

Try using vstest.console.exe


Example:


vstest.console.exe [assembly.dll] /logger:trx;LogFileName=[filename].trx

1.Open Cross tools command prompt (use windows search)
Choose: Cross Tools Command Prompt for VS 2009

[ 1 ]
在此处输入图片说明
2. Open the Cross Tools Command line.
3. Navigate to your project's Bin folder
4. Copy/Paste your Bin folder's patch inside Cross Tools Command Line
Example:

在此处输入图片说明 Than run the following command:
vstest.console.exe [assembly.dll] /logger:trx;LogFileName=[filename].trx

I had the same issue when I was using XUnit. The problem was that I didn't had included xunit.runner for the project . It's not very obvious, since it only adds a reference to packages.config and csproj-file. It's not visible in Visual Studio references list. It is still obvious in a way that without a runner, how does the mstest know how to run xunit tests.

Try this:

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:full path of dll /resultsfile:TestResults.trx

Ie without the " " around your path to the dll

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM