Как запустить покрытие кода из командной строки с помощью NUnit 2.6

Я использую Visual Studio 2015 с NUnit 2.6, и я могу запускать свои модульные тесты из пользовательского интерфейса и видеть покрытие кода в Visual Studio. -- В моем решении около 10 проектов.

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

Какие конкретные аргументы командной строки я должен использовать для запуска всех модульных тестов NUnit в моем решении из командной строки и получения отчета о количестве покрытия кода (предпочтительно в выходном файле в машиночитаемом формате, таком как XML или JSON)?


person BrainSlugs83    schedule 02.02.2016    source источник
comment
Пытаюсь сделать то же самое. Вы?   -  person OK999    schedule 12.07.2016
comment
@ OK9999 Нет. Если бы я понял это, я бы опубликовал ответ. Вам повезло? Если это так, пожалуйста, поделитесь!   -  person BrainSlugs83    schedule 13.09.2016
comment
было совсем когда-то. И да, я думаю, что добился некоторого прогресса в этом. я оглянусь назад и опубликую, что я сделал, и проверю, подходит ли вам это   -  person OK999    schedule 13.09.2016


Ответы (1)


Ниже приведена часть скрипта, который выполняет тест nunit через командную строку.

mkdir %cd%\TestResults   
"E:\tools\NUnit-3.2.1\bin\nunit3-console.exe" ".\path\to\the assembly file some.dll" "--result:.\TestResults\TestResult.xml;format=nunit2"

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

ПРИМЕЧАНИЕ: выходной файл не будет включать статистику покрытия кода. Вы должны передать этот файл в такой инструмент, как SONARQube, чтобы получить эту статистику, ИМХО.

person OK999    schedule 12.09.2016
comment
Да, это выполнит тесты, но вопрос конкретно в том, как получить покрытие кода в результатах вывода. -- Можете ли вы обновить свой ответ, чтобы конкретно решить вопрос о покрытии кода? -- Что такое SONARQube и зачем он нужен? -- В Visual Studio Test Explorer вы просто нажимаете Run->Analyze Code Coverage for All Tests, и все работает. -- Это то, что я хотел бы автоматизировать. - person BrainSlugs83; 29.09.2016
comment
Nunit не предоставляет статистику покрытия кода. SonarQube не имеет ничего общего с модульными тестами или покрытием кода, это просто инструмент, визуализирующий результаты, генерируемые другими инструментами, такими как nunit (только количество пройдено-не пройдено), проблемами, связанными с msbuild, и данными о покрытии кода. Проверьте stackify.com/code-coverage-tools, чтобы найти инструменты, связанные с покрытием кода, или выполните поиск в Интернете. - person Devesh; 16.12.2020