Где найти отсутствующую 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:

agent007
источник
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.

Rashack
источник
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;

vapcguy
источник
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;

CREG
источник
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

травить
источник