Може ли 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 Чарли
Пул. Авторско право (C) 2002-2004 Джеймс У. Нюкърк, Майкъл С. Две,
Алексей А. Воронцов. Авторско право (C) 2000-2002 Филип Крейг. Всички права
запазени.

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

ProcessModel: Използване на домейн по подразбиране: Време за изпълнение на единично изпълнение:
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: Използване на домейн по подразбиране: Време за изпълнение на единично изпълнение:
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 също е профилиращ пренаписващ профил и така двете се сблъскват - но можете да информирате moles, че трябва да се "свърже" към opencover (или всеки друг профайлър), така че двете да работят в синхрон   -  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