Проект модульного тестирования не строится с сервера сборки - PullRequest
26 голосов
/ 19 января 2012

В моем решении VS2010 есть тестовый проект. Сами юнит-тесты ссылаются на следующее пространство имен:

using Microsoft.VisualStudio.TestTools.UnitTesting;

, доступ к которому осуществляется через следующую сборку на моем ПК:

Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
    PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Когда я строю решение на своем ПК, у меня нет проблем; тесты будут работать и работать нормально.

У нас есть страница внутренней сети, которую мы можем использовать для запуска сборок на сервере сборки. Когда я собираюсь через эту страницу, сборка завершается с ошибками:

Generator.cs(3,17): error CS0234: The type or namespace name 'VisualStudio' 
does not exist in the namespace 'Microsoft' (are you missing an assembly
reference?)

Очевидная проблема заключается в том, что упомянутый выше Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll отсутствует на сервере сборки. Я думал, что это будет установлено с VS2010, и так как проекты в моем решении создают цели .NET 4.0, я ожидал, что это будет установлено на сервере сборки.

Какой самый простой способ решить эту проблему? Сервер сборки находится вне моей юрисдикции, и я не хочу регистрировать работу, чтобы установить на нее новые библиотеки.

Ответы [ 2 ]

24 голосов
/ 19 января 2012

.UnitTestFramework.dll находится в папке C: \ Program Files ... и у вас есть ссылка на него.

  1. Создайте каталог под вашим контролем исходного кода, например. Источник / Бинарные
  2. Скопируйте указанную dll в Source / Binaries
  3. Удалите ссылку на .UnitTestFramework.dll из вашей сборки модульного теста
  4. Добавьте ссылку на .UnitTestFramework.dll в сборку модульного теста, но на этот раз выберите dll, которая теперь находится в Source / Binaries

После этого вы можете проверить свои изменения (убедитесь, что папка Source / Binaries включена) и построить решение. Когда сервер сборки собирает решение, он должен получить dll из системы контроля версий.

11 голосов
/ 07 ноября 2012

Конкретный ответ для меня и решения Visual Studio 2010 был:

  1. Установите «Тестовый агент 2010» из Агенты Visual Studio 2010
  2. Перезагрузка Windows
  3. Установка Visual Studio 2010 с пакетом обновления 1
  4. Перезагрузка Windows
  5. Убедитесь, что ссылки на проекты обновлены и теперь указывают на «Microsoft.VisualStudio.QualityTools.UnitTestFramework» «10.1.0.0», а не на «10.0.0.0».
...