TeamCity перестала работать, как только я добавил NUnit в микс - PullRequest
3 голосов
/ 23 марта 2010

Я изо всех сил пытаюсь запустить наш сервер сборки. В настоящее время я выполняю тесты в виртуальной машине Windows XP и установил TeamCity v5.0.3, сборка 10821. Я использую NUnit v2.5.3.

Я завершил начальную настройку TeamCity без каких-либо проблем, при условии, что я использую бегунок сборки sln2008, который делает весь процесс почти бездумным. Это действительно очень приятно и очень приятно видеть вашу первую успешную автоматическую сборку.

Теперь пришло время поднять его на ступеньку выше, и я хотел, чтобы NUnit работал. Я храню сборки NUnit 2.5.3 во внешней папке libs в SVN, поэтому я проверил это на тестовой системе. Я выбрал NUnit 2.5.3 из опций сборщика, как и было рекомендовано в онлайн-инструкции. Но когда я строю, я получаю следующую ошибку:

Window1.xaml.cs(14,7): error CS0246: The type or namespace name ‘NUnit’ could not be found (are you missing a using directive or an assembly reference?) 
Window1.xaml.cs(28,10): error CS0246: The type or namespace name ‘Test’ could not be found (are you missing a using directive or an assembly reference?) 
Window1.xaml.cs(28,10): error CS0246: The type or namespace name ‘TestAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Все отлично компилируется в IDE.

Находя сообщения в блоге и отправляя комментарии, я получил несколько советов и подтвердил следующее:

  • У меня правильно установлено значение HintPath в файле моего проекта (указывает на внешнюю библиотеку)
  • Я также могу выполнить полную сборку Release и Debug из командной строки, используя msbuild
  • Я пытался использовать установщик NUnit, чтобы файл nunit.framework.dll регистрировался в GAC
  • Я изменил учетную запись входа агента сборки, чтобы она была пользователем тестовой системы, а не ЛОКАЛЬНОЙ СИСТЕМОЙ.

Кажется, ничто не поможет ... может кто-нибудь еще подскажет, что делать дальше?

1 Ответ

5 голосов
/ 26 марта 2010

Я заставил это работать, но не в той конфигурации, которая мне действительно нужна. Оказывается, что на моей машине по какой-то причине, когда я установил NUnit 2.5.3, nunit.framework.dll не был зарегистрирован в GAC.

Вы можете понять это, введя gacutil /l | find /i "nunit" в командной строке VS2008. Так что я только что установил его с gacutil /i.

Затем я перезапустил бегунок сборки sln2008, и все было хорошо.

Я только что понял, что пока сборка завершена, бегун TC NUnit не смог выполнить какие-либо модульные тесты. Это в основном сказало мне, что "... \ bin \ debug не существует". ???

К сожалению, мне действительно нужно, чтобы это работало без NUnit в GAC, потому что все мои системы ссылаются на nunit.framework.dll во внешней папке libs, сохраненной в SVN.

В настоящее время мои варианты:

  • убедитесь, что на всех системах установлена ​​одна и та же версия NUnit (в том же месте?)
  • TeamCity каким-то образом удаляется, а затем переустанавливает nunit.framework.dll из SVN каждый раз, когда выполняется сборка

UPDATE

Я наконец понял это. Другая ошибка пользователя ... Я только посмотрел короткий журнал, чтобы попытаться определить мою проблему, и только после просмотра полного журнала я понял, что мой относительный путь к nunit.framework.dll был неверным. После того, как я это сделал (а также должен был указать все сборки для тестирования NUnit), все собрано, и мои тесты теперь запущены. Это очень мило!

...