Почему бы не открыть запись в указанный выходной файл? - PullRequest
0 голосов
/ 27 августа 2011

Я запускаю OpenCover со следующей командной строкой (обернутой для ясности) из консоли администратора.

packages \ OpenCover.1.0.625 \ OpenCover.Console.exe -register: user -target: packages \ NUnit.2.5.10.11092 \ tools \ nunit-console.exe -targetargs: "FooProject.nunit" -filter: + [] -output: cover.xml

Я получаю вывод ниже, но указанный файл cover.xml не создается.

Почему не создается выходной файл?

update
Я зарегистрировал 32- и 64-разрядные профилировщики, как предложено в ответы на этот вопрос и убрал флаг -register, но я все еще получаю тот же вывод

NUnit версии 2.5.10.11092
Copyright (C) 2002-2009Чарли Пул.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Алексей А. Воронцов.
Copyright (C) 2000-2002 Philip Craig.
Все права защищены.

Среда выполнения -
Версия ОС: Microsoft Windows NT 6.1.7601 с пакетом обновления 1
Версия CLR: 2.0.50727.5446 (Net 2.0)

ProcessModel: Default DomainUsage: Default
Выполнение Runtime: по умолчанию
.................. F .... FF ............ F ............ F..F..F ......
Выполнено тестов: 58, ошибок: 0, сбоев: 7, неокончательно: 0, время: 1.5298027 секунд
не выполнено: 0, недействительно: 0, игнорируется: 0, пропущено: 0

Ошибки и сбои:
1) Сбой теста: FooProject.Tests.Controllers.BarControllerTests.Index
в FooProject.Tests.Controllers.BarControllerTests.Index () в C: \ FooProject \ FooProject.Tests \ Controllers \ BarControllerTests.cs: строка 27

2) Сбой теста: FooProject.Tests.Controllers.FringControllerTests.Index * 1044 на 1044.Tests.Controllers.FringControllerTests.Index () в C: \ FooProject \ FooProject.Tests \ Controllers \ FringControllerTests.cs: строка 107

3) Сбой теста: FooProject.Tests.Controllers.FringControllerTests.Save
в FooProject.Tests.Controllers.FringControllerTests.Save () в C: \ FooProject \ FooProject.Tests \ Controllers \ FringControllerTests.cs: строка 135

4) Сбой теста: FooProject..Repositories.FringRepositoryTests.Foo
в FooProject.Tests.Repositories.FringRepositoryTests.Foo () в C: \ FooProject \ FooProject.Tests \ Repositories \ FringRepositoryTests.cs: строка 17

5) Сбой тестаFooProject.Tests.Services.BarServiceTests.Frob
в FooProject.Tests.Services.BarServiceTests.Frob () в C: \ FooProject \ FooProject.Tests \ Services \ BarServiceTests.cs: строка 52

6)Сбой теста: FooProject.Tests.Services.FringServiceTests.Frob
в FooProject.Tests.Services.FringServiceTests.Frob () в C: \ FooProject \ FooProject.Tests \ Services \ FringServiceTests.cs: строка 10

7) Ошибка теста: FooProject.Tests.Services.FringServiceTests.Frob в FooProject.Tests.Services.FringServiceTests.Frob () в C: \ FooProject \ FooProject.Tests \ Services \ FringServiceTests.cs: строка 139

Подтверждение ....

1 Ответ

2 голосов
/ 27 августа 2011

Вероятно, это связано с тем, что профилировщик не оборудован какими-либо сборками из-за отсутствия PDB.

OpenCover только профилирует сборки, для которых существуют PDB.

Nunit копирует сборки, но не PDB, в другое место перед тестированием. Попробуйте использовать параметр / noshadow .

ПРИМЕЧАНИЕ: вы также можете отказаться от опции + [*] *, так как это будет означать, что вы можете получить инструментарий для всех сборок, которые у вас есть PDB, т.е. а также целевые сборки и другие сторонние сборки - это приведет к медленному тестированию.


28 августа 2011 г. - я только что проверил это с помощью тестов opencover, и файл .nunit выполнит теневое копирование, поэтому файлы PDB не найдены - однако если я -targetargs: "OpenCover.Test.nunit / noshadow" тогда тесты запускаются как положено.

Также убедитесь, что в конфигурации по умолчанию в файле .nunit есть все ваши тесты.

...