FileNotFoundException при запуске тестов NUnit из TeamCity - PullRequest
7 голосов
/ 08 сентября 2011

Я использую встроенный в TeamCity NUnit runner для запуска тестов, хранящихся в файлах .DLL.

Мои .DLL ссылаются на другие библиотеки DLL, которые присутствуют в той же папке.

При запускеэто, я получаю FileNotFoundException для указанных библиотек DLL.

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

Кто-нибудь еще сталкивался с таким поведением?

Ответы [ 3 ]

9 голосов
/ 08 сентября 2011

ОК, проблема решена, и это действительно глупо и смущает:

Я установил для запуска тестов NUnit:

**/*.Tests.dll

Это означает, что он будет включать тестыиз /bin/Debug/, а также из других папок, таких как obj/

В эти папки, конечно, не включены ссылки, поэтому одни и те же тесты запускаются дважды, а некоторые из них, конечно, не выполняются!

1 голос
/ 08 сентября 2011

Пути относятся к каталогу проверки сборки, а не к любому рабочему каталогу. Если вам нужны другие пути, используйте синтаксис %reference% для ссылки на свойство TeamCity с путем к каталогу. Вы запускаете его под Windows? Вы используете TeamCity 6.5?

Если это не поможет, напишите нам бесплатно по адресу teamcity-feedback@jetbrains.com

0 голосов
/ 31 марта 2015

В моем случае отсутствующая DLL была собственной библиотекой, и ее не удалось загрузить, поскольку в агенте сборки была установлена ​​неверная версия среды выполнения VC.Мое решение состояло в том, чтобы добавить библиотеки времени выполнения (расположены в C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ VC \ redist \ x86 \ Microsoft.VC110.CRT ') непосредственно в проект (действие сборки = Content, скопировать ввыходной каталог = всегда копировать).Это также облегчает установку.

Надеюсь, это поможет.

...