TeamCity не будет строить с библиотекой классов NUnit

У меня есть настроенное решение .NET, в котором есть основной проект ASP MVC, а затем проект библиотеки классов, в который добавлен NUnit для модульных тестов.

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

error BC30002: Type 'TestFixture' is not defined. 
error BC30002: Type 'Test' is not defined. 
error BC30389: 'System.Diagnostics.Assert' is not accessible in this context because it is 'Friend'. 

Я предполагаю, что он не может найти NUnit.dll или что-то еще, но dll находится в папке пакетов решений. Я попытался сначала выполнить восстановление пакета на случай, если это было так, но он все равно сделал то же самое.

Обновить Хорошо, просто чтобы проверить это, я добавил Moq в проект, чтобы посмотреть, подберет ли он ссылки. Он работал и работал нормально, кажется, проблема возникает только тогда, когда я пытаюсь использовать функции NUnit. Я мог бы отключить его от сборки, но, конечно, тесты NUnit не будут запущены в Team City?

Спасибо!


person Scott Bamforth    schedule 21.05.2015    source источник
comment
что если вы откроете проект на сервере сборки? ссылка существует?   -  person Sam Holder    schedule 21.05.2015
comment
Visual Studio не установлена ​​на сервере, она просто использует инструменты сборки Изменить: забыл, что вы можете просто открыть их в блокноте, да, есть ссылка на папку пакетов с dll   -  person Scott Bamforth    schedule 21.05.2015
comment
Как у вас дела с восстановлением пакета nuget. Используется ли флаг в .csproj или есть явный шаг сборки для восстановления пакетов из решения с помощью средства запуска сборки NuGet Installer? Можете ли вы подтвердить, что пакет был загружен, просмотрев вкладку «Пакеты» в TeamCity?   -  person Evolve Software Ltd    schedule 21.05.2015
comment
Это этап сборки в Team City, и да, он находится на вкладке пакетов. Я подумал, что, возможно, на сервере не хватает каких-то вещей для сборки, но я определенно скопировал все. Может ли это быть связано с NUnit, изначально созданным на .NET 2.0? Поскольку этого нет на сервере, поскольку мы создаем только проекты .NET 4   -  person Scott Bamforth    schedule 21.05.2015
comment
Нет, это не должно быть проблемой. Я не видел этого раньше, поэтому я не знаю, что предложить запретить вывод MSBuild действительно подробно на уровне диагностики. Попробуйте передать v: diag в качестве дополнительного параметра и посмотрите, поможет ли это вам его выследить.   -  person Evolve Software Ltd    schedule 21.05.2015


Ответы (1)


Наконец исправил проблему, и это была моя собственная глупая ошибка. Благодаря DevOps за предложение просмотреть журналы MSBuild, это помогло мне отследить проблему.

Фактическая DLL не регистрировалась в системе управления версиями, потому что машина разработчика, добавившая тестовый проект, имела глобальный файл игнорирования, чтобы игнорировать все библиотеки DLL. Итак, я подумал, что это было там, но это был просто файл .xml, и я неправильно его прочитал.

В любом случае теперь он создает и запускает тесты.

Спасибо всем за помощь

person Scott Bamforth    schedule 22.05.2015