ChatGPT解决这个技术问题 Extra ChatGPT

Where to find "Microsoft.VisualStudio.TestTools.UnitTesting" missing dll?

I am getting following error in my C# visual studio project:

The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

I also tried to find the microsoft.dll file but couldn't get any reference. Am I searching the wrong DLL?

using Microsoft.VisualStudio.TestTools.UnitTesting;  
using Kya.MsFx.Services.Swiper;

namespace Kya.MsFx.Devices.Swiper.Test
{
[TestClass]
public class SwiperWindowTest
{

    private SwiperWebServiceHost m_SwiperWS = null;
    /// <summary>
    ///     start web service on a separate thread, so tests 
    ///     can be executed withut blocking the application thread
    /// </summary>
    [ClassInitialize]
    public void SetupSwiperTests() {

        m_SwiperWS = SwiperWebServiceHost.StartService();

    }

    /// <summary>
    /// Stop service started during class initialize and kill the thread
    /// </summary>
    [ClassCleanup]
    public void CleanupSwiperTests() {
        m_SwiperWS.Stop();
    }


    /// <summary>
    ///   simulate init, swipe, clear operations
    /// </summary>
    [TestMethod]
    public void TestSwiperService()
    {
        MessageBox.Show("test");
    }
}
}
Are you still getting the exact same error after adding the assembly reference to Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?

G
GabLeRoux

You have to add reference to

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

It can be found at C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ directory (for VS2010 professional or above; .NET Framework 4.0).

https://i.stack.imgur.com/zSoWQ.png


Why was this accepted? The comments seem to indicate it was unhelpful. Could someone elaborate?
@sirdank You do realise that no one but the OP can accept an answer as the solution, don't you? If it weren't helpful for the OP, he wouldn't have accepted it.
@Agent007 I know. However, the OP leaving a comment indicating it didn't work suggests (to me at least) that something more needs to be done. After figuring out what else needed to be done, not leaving a comment describing such seems unhelpful.
Just had this issue, and this answer was the solution. Anyone have any insight as to why this is the case? Why is the namespace Microsoft.VisualStudio.TestTools.UnitTesting and the assembly is Microsoft.VisualStudio.QualityTools.UnitTestFramework? Why could they not name them both the same thing?
One way that I got tripped up was that when Team Build builds it will look in a different folder depending upon the version. Microsoft Visual Studio 10.0 for VS 2010, Microsoft Visual Studio 12.0 for VS 2013, Microsoft Visual Studio 14.0 for VS 2015.
J
Jesse Sierks

I know this is old, this is what came up in my Google search. I needed to reference these packages on NuGet:

https://i.stack.imgur.com/fsFHf.png


In my case (VS2019) I needed to upgrade these packages then it fixed the problem. Cheers!
For me adding the PackageReference for MSTest.TestFramework didi the trick. I didn't need to reference the TestAdapter. (I'd guess the latter is for tools integration. E.g.: autdiscovery of tests.) But yea, that was exactly the answer I needed. Thanks!
You need to ensure that these packages are the same version. If you upgrade one without the other your tests won't work. Why the hell these are two separate packages only God and Bill Gates can answer....
This needs to be marked as the answer
Odd ball here in VS2022 too. It works as a charm.
C
Community

The DLL you're looking for that contains that namespace is

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Note that unit testing cannot be used in Visual Studio Express.


Would you please give me download link ?
@AmitPal What edition of Visual Studio do you have? It should be included with most editions.
visual studio 2010 and .net 4.0
@AmitPal See my answer for this question for DLL path. It must be there.
@AmitPal Visual Studio 2010 Express does not have that DLL and it cannot be added to make unit testing work (you'll have to use a third party testing tool like nUnit) If you're using professional or up, see agent007's answer.
S
S. Hooley

To resolve this issue, I had to do the following:

Launch the Visual Studio Installer with administrative privileges If it prompts you to install updates to Visual Studio, do so before continuing When prompted, click the button to Modify the existing installation Click on the "Individual components" tab / header along the top Scroll down to the "Debugging and testing" section Check the box next to "Web performance and load testing tools" Click the Modify button on the bottom right corner of the dialog to install the missing DLLs

Once the DLLs are installed, you can add references to them using the method that Agent007 indicated in his answer.


"Web performance and load testing tools" no longer appears. What would you recommend we select instead?
@ShafiqJetha, I still see the option for "Web performance and load testing tools". I'm using Visual Studio Enterprise 2017 - 15.8.9. What version are you using? It looks like Microsoft has changed the interface of the installer slightly since I wrote the post above. When I launch the Visual Studio Installer (running it as Administrator), I click the "More" button to the right of the "Update" and "Launch" buttons, then select "Modify", then resume with step 4 in the list in my post above.
I'm using the Build Tools installer for Visual Studio 2017, so that might explain it.
@ShafiqJetha what did you end up using?
This is the correct answer.
R
Rashack

There is also a nice nuget package. It will pull the dll to your packages folder. You will need to add the reference to the dll manually.

NOTE: This package is not an official Microsoft package.


The nuget package failed to install in project for .net 4.0 with VS2013. The only option for version was 11.0.50727.1.
can anyone say if this nuget is truly Microsoft owned? It appears to be a personal nuget containing Microsoft asemblies
This says it's for VS 2012 and it says "The owner has unlisted this package".
v
vapcguy

If you are using Visual Studio 2017 Community, the location is:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\v2.0

The DLL you want is there: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Apparently it is located in the C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ directory for Visual Studio 2010 Professional version, but take note that the 10.0 will change to correspond with the release year, i.e. VS 2013 was version 12.0, VS 2015 was version 14.0, VS 2017 is 15.0. (VS Express is not supported and would require installing the NUnit NuGet package, through the NuGet Package Manager, instead.)

You go to References, right-click, select Add Reference, Browse. Navigate to the path, then double-click the file.

Then, you need a using statement at the top of your Unit Test class:

using Microsoft.VisualStudio.TestTools.UnitTesting;


By browse, it means the Browse button on the bottom, not the Browse folder on the left.
@AlanBaljeu Very true.
c
creg

I.e. for Visual Studio 2013 I would reference this assembly:

Microsoft.VisualStudio.Shell.14.0.dll

You can find it i.e. here:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\BugAid Software\BugAid\1.0

and don't forget to implement:

using Microsoft.VisualStudio;


J
Jim Wolff

If you came here because your VSTS build job is failing with the above error message. Ensure that you are using at least version 2.* of the nuget task to restore your packages.


Do you know why version 2.* is needed? We're on TFS 2017 and are running into this error.
I just lifted the code from QA to UAT and I'm now testing the SAME unittests, on the SAME computer, in the same Parent folder in practically the same solution. but nooo.. No unittest suddenly found.... I'm so tired of Microsofts Path hell they have created in the later years.
K
Kirsten

I got this problem after moving a project and deleting it's packages folder. Nuget was showning that MSTest.TestAdapter and MSTest.TestFramework v 1.3.2 was installed. The fix seemed to be to open VS as administrator and build After that I was able to re-open and build without having admin priviledge.


S
Sanjeev Kumar

Add a reference to 'Microsoft.VisualStudio.QualityTools.UnitTestFramework" NuGet packet and it should successfully build it.


I'm sure the other seven entries suggesting this exact solution, doesn't get through to the readers. Repetition is even better when you repeat it.
S
Stanley Tonkonogy

With Visual Studio 2019, running a .net core 3.1 project, you will need to install the latest test framework to resolve the error.

Easiest way to accomplish this is by hovering the browser over a [Test] annotation (underlined in red) and select suggested fixes. The one needed is to "search for and install the latest test framework."


T
Tommy Grovnes

Simply Refer this URL and download and save required dll files @ this location:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

URL is: https://github.com/NN---/vssdk2013/find/master