3

当直接使用 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 一起正常工作,但它的试用期已过期,我买不起许可证。

谢谢你的帮助!

4

2 回答 2

4

我遇到了同样的问题 - 似乎你在github上发布了一个帮助我解决它的问题,所以我在这里为遇到同样问题的其他人发布它:

我通过升级到最新的 OpenCover(此时为 4.0.804)并-oldStyle在调用 OpenCover 时添加开关解决了这个问题。似乎最新的 OpenCover 正在输出ReportGenerator不喜欢的东西,所以我也不得不升级它。

我不知道是什么导致了这个失败,它似乎来自我们的 CI 服务器上的任何地方。希望对将来遇到此问题的任何人有所帮助。

于 2012-09-19T17:17:29.193 回答
0

我不知道您是否使用 NUnit 作为 OpenCover 的测试运行程序。下面是我使用 NUnit 作为测试运行器运行 OpenCover 的批处理文件。我使用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
于 2012-03-07T22:19:47.677 回答