Как заставить nunit-console находить все сборки в нестандартном месте

Я работаю над решением .NET со многими тестовыми проектами, которые используют этап после сборки для перемещения всех выходных данных решения в другую папку, которая является единственным местом, доступным для моего тестирования.

При запуске nunit-console я могу указать различные библиотеки DLL проектов, но тогда мне нужно знать каждую ... Я бы предпочел просто указать само решение, но не могу, поскольку указанные проекты OutputPath отличаются от фактических местоположений DLL.

В качестве альтернативы я пробовал работать с файлом проекта NUnit, но снова кажется, что мне нужно указать каждое место сборки - мне интересно, есть ли более простой способ указать nunit для определенного местоположения для всех сборок.

Глядя на документы NUnit, мне кажется, что я смогу определить элемент Config для использования атрибута binpath, однако его использование без включения хотя бы одной сборки приводит к ошибке «Тип файла не поддерживается»:

введите описание изображения здесь


person Roy    schedule 21.05.2017    source источник


Ответы (1)


Вы не установили расширение движка, которое может интерпретировать проекты nunit. Вы можете найти его на nuget.org: https://www.nuget.org/packages/NUnit.Extension.NUnitProjectLoader/

Кроме того, в вашем файле проекта nunit есть несколько ошибок:

  1. Никаких тестовых сборок в нем нет! Для запуска они должны быть указаны в списке.

  2. Вы говорите NUnit использовать абсолютный путь для частного пути к bin, а также автоматически вывести путь к приватному bin, который является значением по умолчанию.

  3. Вам следует разместить свой файл .nunit в базовом каталоге, содержащем сборки, и просто использовать относительные пути для каждой сборки.

Вот пример файла проекта с минимальными необходимыми настройками:

<NUnitProject> <Config name="Default"> <Assembly path="my.test.dll"/> ... </Config> </NUnitProject>

Такой проект можно легко включить в исходный код и развернуть в месте проведения тестирования вместе со всеми сборками.

person Charlie    schedule 21.05.2017
comment
На самом деле, когда я перечисляю хотя бы одну тестовую сборку, она работает так, как ожидалось (так что я предполагаю, что это не проблема с отсутствующим расширением, а только минимальные требования для загрузки файла проекта nunit), реальный вопрос заключается в том, могу ли я пропустить перечисление конкретных сборок и просто запросить, чтобы все соответствующие сборки находились в определенном месте, а не в том, что указано в файлах решения / проекта C #, перечисленных как входные данные консоли nunit3. - person Roy; 23.05.2017
comment
Нет, файл проекта nunit - это способ перечисления ваших сборок вместе с определенными параметрами их загрузки. Это не нацелено на поиск всех сборок в каталоге. - person Charlie; 24.05.2017