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 で合格します)。カバレッジは NCover で正しく動作していましたが、試用期間が終了し、ライセンスを購入する余裕がありません。

ご協力いただきありがとうございます!

4

2 に答える 2

4

私は同じ問題を抱えていました-解決に役立つ問題をgithubに投稿したようですので、同じ問題を抱えている他の人のためにここに投稿しています:

最新の OpenCover-oldStyle (現時点では 4.0.804) にアップグレードし、OpenCoverを呼び出したときにスイッチを追加することで問題を解決しました。また、最新の OpenCover はReportGeneratorが気に入らないものを出力していたようで、それもアップグレードする必要がありました。

この失敗の原因はわかりません。CI サーバーのどこからともなく発生したようです。将来この問題に出くわした人に役立つことを願っています。

于 2012-09-19T17:17:29.193 に答える
0

NUnit をテスト ランナーとして使用しているか、OpenCover で使用していないかはわかりません。以下は、テスト ランナーとして NUnit を使用して OpenCover を実行するために使用するバッチ ファイルです。ReportGeneratorを使用して、すべてのカバレッジ統計を含む優れた Web ページを取得します。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 に答える