Где найти отсутствующую dll «Microsoft.VisualStudio.TestTools.UnitTesting»?


131

В моем проекте Visual Studio на C # я получаю следующую ошибку:

Тип или имя пространства имен VisualStudio не существует в пространстве имен Microsoft (отсутствует ссылка на сборку?)

Я также пытался найти файл microsoft.dll, но не смог найти ни одной ссылки. Я ищу не ту 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");
    }
}
}

1
Вы по-прежнему получаете ту же ошибку после добавления ссылки на сборку Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
— Joachim Isaksson

Ответы:


144

Вы должны добавить ссылку на

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Его можно найти в каталоге «C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \» (для VS2010 Professional или выше; .NET Framework 4.0).

или щелкните свой проект правой кнопкой мыши и выберите: Добавить ссылку ...> .NET: или щелкните Добавить ссылку ...> .NET:


2
Почему это было принято? Комментарии, кажется, указывают на то, что это было бесполезно. Может кто-нибудь уточнить?
— sirdank

@sirdank Вы понимаете, что никто, кроме OP, не может принять ответ как решение, не так ли? Если бы это не помогло ОП, он бы не принял это.
— Agent007

4
@ Agent007 Я знаю. Однако OP, оставляющий комментарий о том, что это не сработало, предполагает (по крайней мере, для меня), что нужно сделать что-то еще. После выяснения того, что еще нужно сделать, отказ от комментариев с описанием этого кажется бесполезным.
— sirdank

6
Просто была эта проблема, и этот ответ был решением. Кто-нибудь знает, почему это так? Почему пространство имен Microsoft.VisualStudio.TestTools.UnitTestingи сборка Microsoft.VisualStudio.QualityTools.UnitTestFramework? Почему они не могли назвать их обоих одним и тем же?
— Алан Томас

Один из способов, которым я запутался, заключался в том, что при сборке Team Build он будет искать в другой папке в зависимости от версии. Microsoft Visual Studio 10.0 для VS 2010, Microsoft Visual Studio 12.0 для VS 2013, Microsoft Visual Studio 14.0 для VS 2015.
— Райан Гейтс,

67

Я знаю, что это старое, это то, что я обнаружил в моем поиске в Google. Мне нужно было сослаться на эти пакеты в NuGet:

введите описание изображения здесь


В моем случае (VS2019) мне нужно было обновить эти пакеты, после чего проблема была решена. Ура!
— RJFalconer

У меня это отлично работает. Я использую Rider, и приложение изначально было построено на VS. Спасибо, что разместили это здесь.
— Ятин

17

DLL, которую вы ищете, которая содержит это пространство имен,

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Обратите внимание, что модульное тестирование нельзя использовать в Visual Studio Express .


3
Не могли бы вы дать мне ссылку для скачивания?
— Амит Пал

@AmitPal Какая у вас версия Visual Studio? Он должен быть включен в большинство редакций.
— Joachim Isaksson

Visual Studio 2010 и .net 4.0
— Амит Пал

@AmitPal См. Мой ответ на этот вопрос о пути к DLL. Это должно быть там.
— Agent007

5
@AmitPal Visual Studio 2010 Express не имеет этой DLL, и ее нельзя добавить для работы модульного тестирования (вам придется использовать сторонний инструмент тестирования, например nUnit). Если вы используете профессиональную версию или выше, см. Ответ agent007.
— Joachim Isaksson

10

Также есть хороший пакет nuget . Он перетащит dll в папку с вашими пакетами. Вам нужно будет добавить ссылку на dll вручную.

ПРИМЕЧАНИЕ . Этот пакет не является официальным пакетом Microsoft.


1
Не удалось установить пакет nuget в проекте для .NET 4.0 с VS2013. Единственный вариант для версии - 11.0.50727.1.
— WebComer 08

1
Кто-нибудь может сказать, действительно ли этот nuget принадлежит Microsoft? Похоже, это личный nuget, содержащий сборки Microsoft
— BozoJoe 01

9

Чтобы решить эту проблему, мне пришлось сделать следующее:

  1. Запустите установщик Visual Studio с правами администратора.
  2. Если вам будет предложено установить обновления для Visual Studio, сделайте это, прежде чем продолжить.
  3. При появлении запроса нажмите кнопку, чтобы изменить существующую установку.
  4. Щелкните вкладку / заголовок «Отдельные компоненты» вверху.
  5. Прокрутите вниз до раздела «Отладка и тестирование».
  6. Установите флажок "Инструменты веб-производительности и нагрузочного тестирования".
  7. Нажмите кнопку «Изменить» в правом нижнем углу диалогового окна, чтобы установить недостающие библиотеки DLL.

После установки DLL вы можете добавлять ссылки на них, используя метод, который Agent007 указал в своем ответе.


1
«Инструменты веб-производительности и нагрузочного тестирования» больше не отображаются. Что бы вы порекомендовали выбрать вместо этого?
— Shafiq Jetha

@ShafiqJetha, я все еще вижу вариант "Инструменты веб-тестирования и нагрузочного тестирования". Я использую Visual Studio Enterprise 2017 - 15.8.9. Какую версию ты используешь? Похоже, Microsoft немного изменила интерфейс установщика с тех пор, как я написал сообщение выше. Когда я запускаю установщик Visual Studio (запускающий его от имени администратора), я нажимаю кнопку «Дополнительно» справа от кнопок «Обновить» и «Запуск», затем выбираю «Изменить», затем продолжаю с шага 4 в списке в мой пост выше.
— С. Хули

Я использую установщик Build Tools для Visual Studio 2017, так что это может объяснить это.
— Shafiq Jetha

@ShafiqJetha, что ты в итоге использовал?
— Вин Шахрдар,

@VinShahrdar Я, честно говоря, не могу вспомнить; это было так давно. Думаю, мы обошли проблему, возможно, используя чей-то пакет NuGet для получения необходимых DLL. Или, может быть, мы сохранили DLL в репо. Честно говоря, не могу вспомнить, извините.
— Шафик Джета,

8

Если вы используете Visual Studio 2017 Community, расположение:

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

Нужная DLL находится здесь: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

По-видимому, он находится в C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\каталоге для версии Visual Studio 2010 Professional, но обратите внимание, что 10.0он изменится в соответствии с годом выпуска, то есть VS 2013 - это версия 12.0, VS 2015 - версия 14.0, VS 2017 - 15.0. (VS Express не поддерживается, и вместо этого потребуется установить пакет NUnit NuGet через диспетчер пакетов NuGet.)

Вы переходите в « Ссылки» , щелкните правой кнопкой мыши, выбираете « Добавить ссылку», «Обзор» . Перейдите к пути, затем дважды щелкните файл.

Затем вам понадобится usingинструкция в верхней части вашего класса модульного теста:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Под обзором подразумевается кнопка «Обзор» внизу, а не папка «Обзор» слева.
— Алан Бальеу,

@AlanBaljeu Совершенно верно.
— vapcguy

0

Т.е. для Visual Studio 2013 я бы сослался на эту сборку:

Microsoft.VisualStudio.Shell.14.0.dll

Вы можете найти его здесь:

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

и не забудьте реализовать:

с использованием Microsoft.VisualStudio;


0

Если вы пришли сюда из-за сбоя задания сборки VSTS с указанным выше сообщением об ошибке. Убедитесь, что вы используете задачу nuget не ниже версии 2. * для восстановления пакетов.


Вы знаете, зачем нужна версия 2. *? Мы на TFS 2017 и столкнулись с этой ошибкой.
— DylanSp

Я только что перенес код из QA в UAT, и теперь я тестирую ЖЕ юнит-тесты на том же компьютере, в той же родительской папке практически в том же решении. но нет .. Никакого unittest внезапно не обнаружено .... Я так устал от адского пути Microsoft, который они создали в последние годы.
— Кристиан

0

У меня возникла эта проблема после перемещения проекта и удаления его папки пакетов. Nuget показал, что установлены MSTest.TestAdapter и MSTest.TestFramework v 1.3.2. Похоже, исправление заключалось в том, чтобы открыть VS от имени администратора и построить. После этого я смог снова открыть и построить без прав администратора.


0

Добавьте ссылку на пакет NuGet «Microsoft.VisualStudio.QualityTools.UnitTestFramework», и он должен успешно построить его.


Я уверен, что остальные семь записей, предлагающих это точное решение, не доходят до читателей. Повторение становится еще лучше, когда вы повторяете его.
— Кристиан,

0

В Visual Studio 2019, запускающем проект .net core 3.1, вам потребуется установить последнюю версию тестовой среды, чтобы устранить ошибку.

Самый простой способ добиться этого - навести курсор на аннотацию [Test] (подчеркнутую красным) и выбрать предлагаемые исправления. Единственное, что нужно - это «найти и установить последнюю версию тестовой среды».


-4

Просто перейдите по этому URL-адресу и загрузите и сохраните необходимые файлы DLL в этом месте:

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.