NUnitはVisual Studio 2010コードを実行していません


98

Visual Studio 2010ベータdllをNUnit GUIにロードしようとしています。ポップアップエラーが出ます。

このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによってビルドされており、読み込むことができません。NUnitが現在実行されているバージョンよりも新しいバージョンのCLRでアセンブリビルドをロードしようとしている可能性があります。

実行可能ファイルを.NET 4で実行するにはどうすればよいですか?


この質問は実際にVS 2010または.NET 4コードに関連していますか?-Visual Studio 2010でNUNITテストを実行できるツールを探していますが、この質問は誤解を招くものでした。
Nicolas Irisarri 2010年

@Nicolas-.NET 4.0を指します。
ダニエルA.ホワイト

回答:


132

NUnit 2.5ソースをダウンロードして、VS2010ベータ版でVS2008ソリューションを開きました。変換が完了したら、すべてのプロジェクトを開き、すべてのプロジェクトのターゲットフレームワーク設定を「.NET Framework 4.0」に変更しました。次に、エラーなしでソリューションを構築しました。NUnit GUIアプリを使用して、.NET 4.0用にビルドされたテストを実行できるようになりました。私はこのビルドの完全なテストを行っていないため、問題が発生する可能性がありますが、私の目的では問題なく動作します。

更新:NUnitを再構築する必要はありません。以下を関連するNUnit構成ファイルに追加すると、.NET 4.0用にビルドされたテストDLLを実行できることがわかりました。

<構成>の下に追加:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

<runtime>の下に追加:

<loadFromRemoteSources enabled="true" />

3
OK、構成の更新で機能しますが、requiredRuntimeタグにversion = "v4.0.21006"を使用する必要がありました。
mkmurray 2009

4
ところで、構成ファイルのデフォルトの場所は次のとおりです。C:\ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.configこれらのオプションを構成に追加するとうまくいきました。
Brad Irby、2010

2
これを最新のNunit + .net4 RTMで動作させることができませんでした。推奨エントリをnunit-console.exe.configに追加しましたが、次のエラーメッセージが表示されます:System.ArgumentException:net-4.0フレームワークは利用できません上記のバージョンで試して+ v4.0.30319 2008 R2 x64を実行しています
AndreasÖhlund

1
コンソールランナーの場合、前述のように構成を変更しますが、.NET 4.0のRTMバージョンにはv4.0.30319を使用します。また、次のコマンドライン引数を指定して実行します:/framework=4.0.30319
Lance Fisher

1
設定を変更する代わりに、コマンドラインオプション/framework:net-4.0.30319を使用して運が良かった。これは、4.0 CLRを使用するアプリケーションと使用しないアプリケーションを制御できるようにするのに役立ちました。
ケビンクロウェル

25

.NET 4がリリースされたので、私は

<supportedRuntime version="v4.0.30319" />

NUnit 2.5.4でrequiredRuntimeの代わりにexe.configを使用し、上記のようにloadFromRemoteResourcesタグを使用すると、すべてうまくいきました。ありがとう!


17

ファイルを変更する必要はありません

このファイルを開くだけで、すべてうまくいきます

C:\ Program Files(x86)\ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-x86.exe


ありがとう-私のケースを解決しました。ユニットテストでコンパイルされたx86には、x86バージョンのnunitを使用する必要があります。CLRバージョンの警告は赤字でした。nunit 2.5.10の使用。
Nigel Touch

ここでも同じですが、どういうわけかx86バージョンを使用する必要があります
gavin

12

NUnitの2.5.5は、コマンドラインでオプションを指定することができ/framework=net-4.0を、それが最新のVS2010のリリースで生成された新しいアセンブリと互換性があります。


3
これを機能させることはできませんでした。私は人々が/framework:net-4.0.30319や他のあらゆる種類のバリエーションを使用するのを見てきました。サイトのドキュメントに実際のオプションが含まれていると便利です。
Jason Short、

2
@ジェイソンこれはコンソールバージョンでのみ機能するようです。GUIバージョンにはこのオプションはありません。
Roman Starkov、2010

これがバージョン2.5.5以降で機能することを言及するための+1!私のマシンの1つでNUnitがArgumentExceptionsとNullReferenceExceptionsをスローしていたのですが、それはバージョン2.5.0が原因であることがわかりました。
realMarkusSchmidt 2011

2

提案されたソリューションは、NUnitを実行するのに非常に役立ちました。残念ながら、その後、コードカバレッジステップにたどり着いたとき、NCoverから次の情報が得られました。

プロファイルされたプロセスが終了しました。プロファイラ接続が確立されていません。

私が見つけた最良の解決策は、NCoverでNUnitの「-x86」バージョンを使用することでした。

NCover.Console.exe nunit-console-x86.exe-追加のパラメーター-

現在動作します。


1
これをありがとう、私は同じ問題を経験していました、あなたの修正はそれを解決しました!
CubanX 2010年

2

Visual [C#2010 Express、またはいずれか]から.net 4バージョンを見つけるには、メニューのヘルプ項目の下にあるVisualアプリケーションの[バージョン情報]に移動します。ウィンドウの右上のMicrosoft .NET Framework行の下のバージョンとして表示されます。


1

NUnit 2.4.8の実行中にまったく同じエラーメッセージが表示されました。しばらくアップグレードしていなかったので、現在のNUnit(v2.5.9)をインストールし、VS2010アセンブリをサポートするようになりました。したがって、このエラーが新たに発生した場合は、NUnitのバージョンを確認してください。 2010年12月(またはそれ以降)に行う必要があるのは、NUnitをアップグレードすることだけです。


2011/03/15にダウンロードしたNUnit 2.5.9を実行していますが、この問題は解消されません。提案されたソリューションを試しても
DrLazer

1

NUnit 2.5.10以降では、GUIランナーでビジュアルスタジオのサポートを有効にできます。

ツール->設定-> IDEサポート

その後、.NET 4.0アプリドメインでアセンブリを実行するnunit-agent.exeプロセスに正常にアタッチできました


0

nunit 2.5.5にアップグレードした後にこの問題が発生した場合、nantを最新バージョンの.91 alphaにアップグレードする必要があります。


0

私が見つけ NUnitのアプリケーションから起動する便利なテンプレート。これはVS C#Expressをサポートし、デバッグテストを可能にし、.NET 4.0用にプリコンパイルされたNUnitを含みます。著者のおかげで、新しいテストプロジェクトはワンクリックで準備できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.