Сбой тестов NUnit в OpenCover - PullRequest
2 голосов
/ 08 марта 2012

Мои тесты прекрасно работают, когда выполняются напрямую с NUnit, но при выполнении через OpenCover (все еще с NUnit в качестве бегуна) я получаю следующие ошибки:

ProcessModel: Default    DomainUsage: Single
Execution Runtime: Default

.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F
.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F. F.F.F.F.F.F.F.F.F.F.F.F.F.F.F
.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F
.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F
Tests run: 200, Errors: 0, Failures: 200, Inconclusive: 0, Time: 0,5410309 seconds
   Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0

Errors and Failures:
1) SetUp Error : GeoGen.Studio.PlugInLoader.LoaderTests
   SetUp : System.MissingMethodException : Method not found: 'VoidSystem.CannotUnloadAppDomainException.SafeVisited(Int32)'.
       at GeoGen.Studio.PlugInLoader.LoaderTests..ctor()

2) Parent Failure : GeoGen.Studio.PlugInLoader.LoaderTests.AddPlugIn_ValidPlugIn_CreatesInstance
   TestFixtureSetUp failed in LoaderTests

Ошибка 2 повторяется для каждоготестовое задание.Все тесты должны пройти (и они проходят в NUnit).Coverage правильно работал с NCover, но его пробная версия истекла, и я не могу позволить себе лицензию.

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 19 сентября 2012

У меня возникла та же проблема - кажется, вы опубликовали проблему на github , которая помогла мне решить ее, поэтому я публикую ее здесь для всех, у кого такая же проблема:

Я решил проблему, обновив до последний OpenCover (на данный момент 4.0.804) и добавив переключатель -oldStyle, когда я вызвал OpenCover. Также кажется, что последний OpenCover выводил что-то, что ReportGenerator не нравилось, поэтому мне пришлось обновить это тоже.

Понятия не имею, что послужило причиной этой ошибки. Похоже, она возникла из ниоткуда на нашем CI-сервере. Надеюсь, что это поможет любому, кто столкнется с этой проблемой в будущем.

0 голосов
/ 08 марта 2012

Я не могу сказать, используете ли вы NUnit в качестве тестового прогона или нет для OpenCover.Ниже приведен командный файл, который я использую для запуска OpenCover с NUnit в качестве тестового прогона.Я использую ReportGenerator , чтобы получить хорошую веб-страницу со всей статистикой покрытия.Это может оказаться полезным, поскольку вы сказали, что ваши тесты работают нормально с бегуном NUnit:

set buildOutputFolder=.\build-output
set testDllFolder=\projects\YourProject.Test\bin\Debug
set testDllName=YourProject.Test
set targetDllFilters=+[YourProject*]* -[YourProject.Test*]*

del %buildOutputFolder%\*.*
REM I use a symbolic link to point to a single folder for these tools.
REM Create the link by:
REM mklink /D OClib c:\packages\OpenCover.1.0.719
REM mklink /D RptGen c:\packages\ReportGenerator.1.2.1.0
REM mklink /D NUnitLib c:\packages\NUnit-2.5.10.11092\bin\net-2.0

OClib\OpenCover\OpenCover.Console.exe -register:user -target:"NUnitLib\nunit-console.exe" -targetargs:"/noshadow %testDllFolder%\%testDllName%.dll" -filter:"%targetDllFilters%" -output:"%buildOutputFolder%\CoverageResult.xml"
del TestResult.xml

RptGen\ReportGenerator\ReportGenerator %buildOutputFolder%\CoverageResult.xml %buildOutputFolder%
%buildOutputFolder%\index.htm
...