2

.Net 3.5 ソリューションを .Net 4.0 に移行しようとしていますが、.Net Framework のバージョン 4.0 を使用してビルドされたアセンブリを使用して動作するテスト フレームワークで問題が発生しています。

以前は、NAnt スクリプト内で NUnit 2.4.3.0 と NCover 1.5.8.0 を使用していましたが、NUnit 2.4.3.0 は .Net 4.0 プロジェクトを好みません。そのため、テスト プロジェクト自体で NUnit フレームワークの新しいバージョンにアップグレードしましたが、NCover 1.5.8.0 がこのバージョンの NUnit をサポートしていないことがわかりました。

.Net Framework 2.0 を使用してツールを実行しているため、現在使用されているバージョンよりも新しいバージョンの .Net Framework を使用してアセンブリがビルドされたことを示すエラーがコードに表示されます。

次に、Gallio の Icarus テスト ランナー GUI を使用してみましたが、これと MbUnit はバージョン 3.5 までの .Net Frameword しかサポートしておらず、結果は「テストは無視されます」であることがわかりました。

カバレッジの側面 (CruiseControl.net へのレポート用) に関しては、PartCover が NCover を置き換える良い候補であることがわかりました (NCover の新しいバージョンは非常に高価で、PartCover は無料であるため)。テストランナーを最初に動作させることができないため、これはまだ数ステップ下の段階です!!

上記で説明したのと同じ方法で、.Net 4.0 で実行されるテスト フレームワークに光を当てることはできますか? そうでない場合は、現在使用しているツールのメーカーが .Net 4.0 にアップグレードする機会が得られるまで、.Net 3.5 の使用に戻らなければならないのではないかと心配しています。

ありがとう。

4

1 に答える 1

0

そうです-これを自分で修正しました。他の誰かが同じ問題を抱えている場合の方法は次のとおりです。

NUnit 2.5.5がリリースされ、.Net Framework v4.0を使用してビルドされたプロジェクトがサポートされますが、NCoverを介してNAntで使用すると、次のような追加のパラメーター/framework=4.0.30319を使用する必要があります。

<exec program="C:\Program Files\TestDriven.NET 2.0\NCover\1.5.8\NCover.Console.exe">
 <arg value="&quot;C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit-console.exe&quot;"/>
 <arg value="&quot;bin/release/myProject.Test.dll&quot; /framework=4.0.30319"/>
 <arg value="/xml"/>
 <arg value="bin/release/myProject.Test-dll-results.xml"/>
 <arg value="//x"/>
 <arg value="bin/release/myProject.Test-dll-coverage-results.xml"/>
 <arg value="//q"/>
 <arg value="//a"/>
 <arg value="myProject.Test"/>
</exec> 

NUnitを2.5.5にアップグレードするだけで(このフラグを追加することで)、これはビルドスクリプトにほとんど変更を加えることなく機能するようになりました。これは良いことです。

したがって、要約すると:

NAntスクリプトはNCover1.5.8を呼び出し、NUnit 2.5.5を呼び出します。これは、.Net4.0を使用してビルドされたユニットテストアセンブリ.dllをテストします。NUnitは最初の出力ファイル(bin / release / myProject.Test-dll-results.xml)を生成し、NCoverによって取得され、2番目の出力結果ファイル(bin / release / myProject.Test-dll-coverage)に処理されます。 -results.xml)。これは、Cruise Controlのccnet.configファイルに含めるだけで、ビルドごとにWebダッシュボードに自動的に含まれます。

単純。それが他の誰かに役立つことを願っています!

于 2010-06-23T13:42:02.403 に答える