No test found. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again

Unit TestingTfsBuildTfs 2015

Unit Testing Problem Overview


I am in the process of upgrading our existing solution to .Net 4.6.1 and have been unable to get our unit tests to run during a server build. Locally they run as expected and flipping the framework version back to .Net 4.5.1 makes them run again on the server.

I am getting the following error:

> No test found. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.

I have reproduced the problem in a simpler setup:

  • Solution with a single C# Unit Test project with two tests (one failing, one passing).
  • XAML build definition using the Default Template (TfvcTemplate.12.xaml)
  • TFS 2015 Update 1 XAML build server with Visual Studio Enterprise 2015 Update 1 installed (have six similar servers and all produce the same result)

Unit Testing Solutions


Solution 1 - Unit Testing

You can try to change your default processor architecture in your Test Setting from X86 to X64. In my case this was the problem.

This happens if the platform target of your project under test is set to x64.

Screenshot of test settings

Solution 2 - Unit Testing

My build was not finding the tests either. My setup and solution for finding the tests are as follows.

I use VSTS (Visual Studio Team Services) and have a build that is configured to refresh the NUGET packages on every build. I am using NUnit and found that running the following NUGET command (from the package manager console in Visual Studio) to add NUnitTestAdapter library to my test project and the checking in the packages.config made the tests run in my VSTS build.

Install-Package NUnitTestAdapter

As Maurice mentions in the Comment to this post for NUnit3 use the following NUGET package (Look for other utils on the link. i.e: dotnet CLI and Paket CLI)

Install-Package NUnit3TestAdapter

Hope this helps.

Solution 3 - Unit Testing

In my case, I had to:

  1. Convert test project to netcore 2.0 (was netstandard 2.0)

  2. Add nuget package xunit.runner.visualstudio

Reference: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/

Solution 4 - Unit Testing

I'm using MSTest. For me, it was version missmatch and missing another dependent package-

  1. My package folder contains only MSTest.TestFramework.1.2.1 package. In my project file(.csproj) the reference in Target Name was MSTest.TestAdapter.1.2.0 package which was not present in package folder. My packages.config has also reference of MSTest.TestFramework.1.2.0 .

  2. So I installed MSTest.TestAdapter.1.2.0 from nuget package manager and align MSTest.TestFramework version to 1.2.0 in project and package file. Finally I add Microsoft.VisualStudio.TestPlatform.TestFramework and Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions in the reference.

Then everything was OK. Hope this help someone.

Solution 5 - Unit Testing

I got this error and was able to resolve it.

  1. I use Visual Studio Professional 2017
  2. In VS, I navigated to Tools --> Extensions And Updates
  3. At the top of the menu, I'd noticed that my NUnit adapter was disabled
  4. I clicked the [Enable] button
  5. I was able to initiate tests without errors.

Solution 6 - Unit Testing

This problem surfaces for Visual Studio 2017 again. Most likely another bug but the same outcome.

One workaround that seems to work is to uninstall Microsoft Visual Studio 2017 Remote Debugger from the affected machine.

Solution 7 - Unit Testing

  1. Install Nunit and NUnitTestAdapter latest version from NUGET package.
  2. Go to -> Test -> Test Settings -> Default processor architecture -> Change to X64
  3. Build the solution.
  4. This will resolve Run Test and Debugger issue in unit testing and it will start working.

Solution 8 - Unit Testing

I ran into the same problem in VSTS with .Net 4.6.2. If you are seeing this from your VSTS console output, the workaround provided by @Sushil still works in VSTS and is needed. Unfortunately the "Test Assemblies" task provided by Microsoft passes, so you really don't even know there is a problem unless you check the output and find none of your tests actually executed!

VSTS Test Fix

Solution 9 - Unit Testing

I fixed this problem by reinstalling all testing related NuGet packages for the project: Xunit, Xunit.runner.vistualstudio, Microsoft.Net.Test.Sdk

Solution 10 - Unit Testing

I faced the similar issue when tried nUnit in VS 2017 and it's not a core project. Installing NUnit3TestAdapter fixed the issue.

Solution 11 - Unit Testing

I'll throw my solution onto the heap. In my case, I am adding a couple of projects to an existing solution along with Test projects for them. We're using MSTest. There was a previous UnitTest.testsettings file enabled on the solution that was causing compatibility issues.

Clicking on the settings file removed the check and the test run was successful for my tests.

enter image description here

Solution 12 - Unit Testing

If you are running your tests inside docker using multistage building and tests aren't found. Make sure you copy all files not only project files like below Dockerfile section.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release

Solution 13 - Unit Testing

I fixed this by issue in VS 2017 & 4.6.2 test project with the following steps:

  1. Remove references to Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll and extensions
  2. Install the Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated nuget package

Solution 14 - Unit Testing

Using .Net Core with a build pipeline in TFS 2017, my Visual Studio Test step was passing without actually executing any tests. Had to edit the step, "Advanced Execution Options" -> "Other console options" to include:

/framework:".NETCoreApp,Version=v2.0"

(That field also contains /platform:x64)

Solution 15 - Unit Testing

Make sure that you've got the "Microsoft.NET.Test.Sdk" nuget installed.

Solution 16 - Unit Testing

I solved this issue by installing NUnit3TestAdapter NuGet into my project (https://www.nuget.org/packages/NUnit3TestAdapter/).

dotnet add package NUnit3TestAdapter --version 3.17.0

My .csproj file

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
    <PackageReference Include="RestSharp" Version="106.11.7" />
  </ItemGroup>

</Project>

Solution 17 - Unit Testing

This question is obviously being found by people with a range of scenarios, my answer will cover running XUnit tests on a .NET Core project using build pipeline on Azure DevOps but may help others too.

  • Ensure you have the XUnit test adapters installed from nuget as per this answer.
  • In the yaml for your build pipeline, add otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1' to the inputs of your VSTest@2 step (with the version number set to whatever version of .NET Core you are using). See this documentation for more info.
  • While this is not mandatory, I would recommend also adding failOnMinTestsNotRun: true so that the build pipeline will report a failure if zero tests are run.
  • If you run a build at this point, you may find that your tests run but the pipeline then gives the error The library 'hostpolicy.dll' required to execute the application was not found. You can solve this by changing your filter from the default **\*test*.dllto **\*test.dll (note the removed asterisk), or some other pattern which will match your test project's DLL. The reason for this is that XUnit places a file called testhost.dll in the output directory, as explained in this github issue.

If you are using the older pipelines which do not use yaml, the same options should be available. This answer covers adding the framework, I assume there will also be an option to "Fail the task if a minimum number of tests are not run" or something similar.

Solution 18 - Unit Testing

This error can happen for async tests if you have the wrong return type. The return type should be Task, and not void.

Solution 19 - Unit Testing

I use MSTest.

I installed from Nuget the latest version of MSTest.TestFramework and replaced OOB Remove references to Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Then Installed from neget the latest version of Microsoft.TestPlatform

It allowed me to run test with a command:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

But I got the same error. The root cause of the error that I didn't specify a test adapter which parses the assembly and finds tests.

Solution:

  1. Install a nuget package "MSTest.TestAdapter"

  2. Specify a test adapter in the end of a command:

    /TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common"

Solution 20 - Unit Testing

I installed nunit3adapter package and it worked for me from my test log:
-->(NUnit3TestExecutor discovered 6 of 6 NUnit test cases using Current Discovery mode, Non-Explicit run)

Solution 21 - Unit Testing

This is a known issue for .Net 4.6 now.

> Unable to run .Net 4.6.x unit tests as part of a XAML TFS Build with TFS 2015 UPdate1 > **Source:**https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Here is a similar question for you reference: Unable to run .Net 4.6 Unit tests of TFS 2015 XAML build server

Solution 22 - Unit Testing

I was getting a similar issue and noticed somehow an app.config file had been added to my test project. Removing this config file fixed it for me.

Solution 23 - Unit Testing

I got this error because my Unit test class was not public.

Ex:

class ClientTests

Error in Output:

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

Correction:

public class ClientTests

Solution 24 - Unit Testing

Found a way! Probably not the most orthodox but it did helped me out in a hurry:

  1. Update the MSTest.TestAdapter and MSTest.TestAdapterFramework packages to the 1.4.0 from the Tools > NuGet Package Manager.
  2. The clean the solution and run the tests again.

I don't think is anything particular with the version, but updating it certainly cleans whatever reference is bad in the solution/project.

Solution 25 - Unit Testing

This is just to recap the solution brought forward by @Sushil earlier.

This is a known issue in Team Foundation Server 2015 RTM + Update 1 and will be fixed in Update 2, reference.

There is a workaround described by @Sushil here, which includes adding a .runsettings file that forces the test runner to older .Net framework (please not that you have to specify it through the "Add/Edit Test Run" dialog as adding it directly in the build process editor will be ignored).

Solution 26 - Unit Testing

In Visual Studio 2017 I just uninstall and reinstall NUnitTestAdapter or install new package like NUnitTestAdapter.WithFramework package and problem gone.

Solution 27 - Unit Testing

I am having the same issue. I am using Visual Studio 2017 Community Edition.

enter image description here

I used these steps to successfully discover all my test cases and successfully run it:

  • First go to Extensions and Updates, install NUnit3 Test Adapter. If you already have, just enable it.

  • Restart your Visual Studio 2017, it will automatically prompt to
    install your extension, if a prompt says to end task to continue
    installing, just click "End Task".

  • After that, rebuild your Test Project and all test cases will now be identified and you can now start running your test cases.

Solution 28 - Unit Testing

In my case Reinstalling Nunit3 Adapter, Deleting temp folders, Changing architecture and nothing worked. Its because of the Daemon Resharper caused the problem.

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

That resolves the issues.

Solution 29 - Unit Testing

After add the TestAdapterPath in the commander, it's worked for me:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"

Solution 30 - Unit Testing

In my case the tests were discovered but running resulted in "Test not Available..." and the (in)famous: "Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again."

the error was independent of Visual Studio (tested from dotnet CLI tools and nearly naked UNit test) and it was only when targeting .NET 4.7.1. dotnetcore app works fine.

also running tests with the Nuint3 CLI nunit3-console.exe Tests.csproj shows the error:

"Either assembly contains no tests or proper test driver has not been found."

the error was because the test-adapter could not be found on a (mapped) network drive or share and was solved by copy it locally and rerun.

Solution 31 - Unit Testing

Try running vstest.console.exe with --diag:diag.txt and inspect the output. For me it was DLL load failures for test adapters from my working directory:

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

I worked around this by adding <loadFromRemoteSources enabled="true"/> under <runtime> in vstest.console.exe.config

Solution 32 - Unit Testing

I have just been through this issue. It seems there may be a lot of causes for it. In my case, I was trying some codes and due to that, I renamed the project, removed it.. added it again... and all of a sudden, my single test stopped working and the Test output window was showing this error: "No test found. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again" The Debug output was showing errors related to the platform: "Following dll(s) do not match current settings, which are .netframework , version 4.5 and platform X86."

Using VS 2019 v 16.8.0 Test project on .NET Framework 4.8 Configured to Debug/Any CPU

After trying a bunch of things, the solution was

  • Close Visual Studio
  • Rename the folder holding your solution. For example: C:\Git\Solution to C:\Git\Solution2
  • Open VS and load your solution. Try to run a test.

This worked for me, hope it works for you.

Solution 33 - Unit Testing

I often come to this forum each time I have to set up a unit test. This time I found that I was forgetting to add the [Test] attribute to my methods within my unit test class (using NUnit).

Solution 34 - Unit Testing

I just discovered that the Visual Studio Test Explorer will sometimes just un-select all the tests. When I clicked on one of the little pass/fail icons, the tests suddenly showed up in the display.

Wow, that was unexpected.

Solution 35 - Unit Testing

if you already installed a test adapter in the test project, then try to uninstall from the project and install it again to the test project.

This basic fix works for me.

Solution 36 - Unit Testing

For those who are facing the similar problem .Here is the solution ,Please Install SpecFlowPlusRunner .

I have tried may other solutions like re-installing ,deleting the cache etc But the solution is actually different we need to Install SpecRun.SpecFlow2.3.0 for visualstudio 2017 .This has solved the problem .

Hope this helps everyone .

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTore &#216;stergaardView Question on Stackoverflow
Solution 1 - Unit TestingrubeonlineView Answer on Stackoverflow
Solution 2 - Unit TestingNick RubinoView Answer on Stackoverflow
Solution 3 - Unit Testingscrat.squirrelView Answer on Stackoverflow
Solution 4 - Unit TestingquasarView Answer on Stackoverflow
Solution 5 - Unit TestingJ WoodView Answer on Stackoverflow
Solution 6 - Unit TestingCsapi007View Answer on Stackoverflow
Solution 7 - Unit TestingKarthikeyan NandagopalanView Answer on Stackoverflow
Solution 8 - Unit TestingraterusView Answer on Stackoverflow
Solution 9 - Unit Testingn.shojaeiView Answer on Stackoverflow
Solution 10 - Unit TestingSurendra RayapatiView Answer on Stackoverflow
Solution 11 - Unit Testingjwatts1980View Answer on Stackoverflow
Solution 12 - Unit TestingBassam GamalView Answer on Stackoverflow
Solution 13 - Unit TestingSte BrownView Answer on Stackoverflow
Solution 14 - Unit TestingMarkView Answer on Stackoverflow
Solution 15 - Unit TestinglordpansarView Answer on Stackoverflow
Solution 16 - Unit TestingOsanda DeshanView Answer on Stackoverflow
Solution 17 - Unit TestingTimView Answer on Stackoverflow
Solution 18 - Unit Testinguser3533716View Answer on Stackoverflow
Solution 19 - Unit TestingMirrorBoyView Answer on Stackoverflow
Solution 20 - Unit TestingSammieDyalnTView Answer on Stackoverflow
Solution 21 - Unit TestingPatrickLu-MSFTView Answer on Stackoverflow
Solution 22 - Unit TestingthatWiseGuyView Answer on Stackoverflow
Solution 23 - Unit TestingJared BeachView Answer on Stackoverflow
Solution 24 - Unit Testingdave_077View Answer on Stackoverflow
Solution 25 - Unit TestingTore ØstergaardView Answer on Stackoverflow
Solution 26 - Unit TestingAli YousefiView Answer on Stackoverflow
Solution 27 - Unit TestingWilly David JrView Answer on Stackoverflow
Solution 28 - Unit TestingRiyaz HameedView Answer on Stackoverflow
Solution 29 - Unit TestingdixiashiView Answer on Stackoverflow
Solution 30 - Unit TestingFalco AlexanderView Answer on Stackoverflow
Solution 31 - Unit Testingandrew.rockwellView Answer on Stackoverflow
Solution 32 - Unit TestingAislan Gelatti RochaView Answer on Stackoverflow
Solution 33 - Unit TestingTravis SchoenView Answer on Stackoverflow
Solution 34 - Unit TestingFred HaslamView Answer on Stackoverflow
Solution 35 - Unit TestingParth DarjiView Answer on Stackoverflow
Solution 36 - Unit TestingLaxmiView Answer on Stackoverflow