Может ли OpenCover получить покрытие кода с помощью Microsoft.Moles.Runner и Nunit?

Я использую OpenCover с Visual Studio2010 professional. Он хорошо работает с NUnit в командной строке.

OpenCover.Console.exe -register:user -target:"C:\bin\NUnit 2.6\bin\nunit-console.exe" -targetargs:"C:\App\Test\ApplicationTest\bin\Debug\ApplicationTest.dll"  -targetdir:"C:\App\bin\Debug" -output:html\result.xml

Результат ниже.

NUnit-Console, версия 2.6.0.12051 Авторские права (C) 2002-20011 Чарли
Пул. Copyright (C) 2002-2004 Джеймс В. Ньюкирк, Майкл К. Ту,
Алексей А. Воронцов. Авторское право (C) 2000-2002 Филип Крейг. Все права
защищены.

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

ProcessModel: Default DomainUsage: Single Execution Runtime:
net-4.0 .. Выполнено тестов: 2, Ошибок: 0, Ошибок: 0, Неубедительно: 0,
Время: 42,14 секунды Не запущено: 0, Недействительно: 0, игнорируется: 0, пропускается: 0

Выполнение ... Посещенные классы 59 из 175 (33.7142857142857) Посещенные
Методы 268 из 4131 (6.48753328491891) Посещенные точки 15137 из 71763
(21.0930423755975) Посещенные филиалы 196 из 8025 (2.44236760124611)

==== Альтернативные результаты (включая все методы, в том числе без
соответствующего источника) ==== Альтернативные посещаемые классы 59 из 207
(28.5024154589372) Альтернативные посещаемые методы 284 из 4371
(6.49736902310684 )

Однако это не работает с Microsoft.Moles.

OpenCover.Console.exe -register:user -target:"C:\Program Files\Microsoft Moles\bin\moles.runner.x86.exe" -targetargs:"""C:\App\Test\ApplicationTest\bin\Debug\ApplicationTest.dll""  /r:""C:\bin\NUnit 2.6\bin\nunit-console.exe""" -targetdir:"C:\App\bin\Debug" -output:html\result.xml

Этот результат ниже.

Microsoft Moles Runner v0.94.51023.0 -
http://research.microsoft.com/moles -. NET v4.0.30319 Авторские права (c)
Microsoft Corporation 2007-2010. Все права защищены.

инструментирование ... запущено
NUnit-Console версии 2.6.0.12051
Версия CLR: 4.0.30319.269 (Net 4.0)

ProcessModel: Default DomainUsage: Single Execution Runtime:
net-4.0 .. Выполнено тестов: 2, Ошибок: 0, Ошибок: 0, Неубедительно: 0,
Время: 28,004 секунды Не выполнено: 0, Недействительно: 0, игнорируется: 0, пропускается: 0

Фиксация ... Посещенные классы 0 из 2 (0) Посещенные методы 0 из 14 (0)
Посещенные точки 0 из 45 (0) Посещенные ветви 0 из 2 (0)

==== Альтернативные результаты (включая все методы, включая методы без соответствующего
источника) ==== Альтернативные посещаемые классы 0 из 2 (0)
Альтернативные посещаемые методы 0 из 16 (0)

Оба теста верны, но покрытия нет.

Я попытался изменить аргумент родинок, например '/ args: "/ domain = Multiple"', -oldType и т. Д., Но это не сработало.

Кто-нибудь замечает, что я должен делать? Может ли OpenCover использовать родинки с Nunit?


person axt_star    schedule 10.07.2012    source источник
comment
Решил проблему сам. Сначала добавлю ниже. set CLRMONITOR_EXTERNAL_PROFILERS={1542C21D-80C3-45E6-A56C-A9C1E4BEB7B8} s135.codeinspot.com/q/2342744   -  person axt_star    schedule 11.07.2012
comment
И я знал, что версия NUnit важнее. v2.5.2 работает исправно. но v2.6 нет.   -  person axt_star    schedule 13.07.2012
comment
это обсуждалось в предыдущих вопросах stackoverflow stackoverflow.com/questions/7013990/ - проблема в том, что moles также является профилировщиком перезаписи, и поэтому два конфликта конфликтуют - однако вы можете сообщить кротов, что ему нужно« связать », чтобы открыть крышку (или любой другой профилировщик), чтобы они работали синхронно   -  person Shaun Wilde    schedule 16.07.2012
comment
Я очень ценю ваш комментарий.   -  person axt_star    schedule 17.07.2012


Ответы (1)


Решил проблему сам. Сначала добавьте приведенный ниже код в пакетный файл или установите его как команду командной строки.

установите CLRMONITOR_EXTERNAL_PROFILERS = {1542C21D-80C3-45E6-A56C-A9C1E4BEB7B8}

Эта ссылка может быть полезна. http://s135.codeinspot.com/q/2342744

person axt_star    schedule 23.04.2013