私は以前にNUnitを使用したことがありますが、しばらくは使用しておらず、このマシンでは使用していません。 Program Filesでバージョン2.4.8を解凍しましたが、テストを読み込もうとするとこのエラーが発生し続けます。
ファイルまたはアセンブリ 'nunit.framework、Version = 2.4.8.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません**
問題を単純化するために、可能な限り最も基本的なテストファイルをコンパイルしました。
using NUnit.Framework;
namespace test
{
[TestFixture]
public class Tester
{
[Test]
public void ATest()
{
Assert.IsTrue( false, "At least the test ran!" );
}
}
}
「C:\ ProgramFiles\NUnit-2.4.8-net-2.0\bin」をPATHに追加しました(そして再起動しました)。テストアセンブリをそのフォルダーにコピーすると、
C:\ Program Files\NUnit-2.4.8-net-2.0\bin> nunit-console test.dll
動作しますが
C:\ Program Files\NUnit-2.4.8-net-2.0\bin> nunit-console c:\ dev\nunit_test\test.dll
そして
C:\ dev\nunit_test> nunit_console test.dll
上記のエラーで失敗します。
おそらく、NUnit.Framework dllをプロジェクトのbinフォルダーにコピーすることでこれを回避できたと思いますが、過去にこれを実行しなければならなかったことを覚えていません。さらに、GUIでも同じエラーが発生します。 GUIは、フレームワークがどこにあるか(つまり、同じフォルダー内にあるか)を認識すべきではありませんか?
@Scott、私はVisualStudioを使用していません。次の行を使用して、テストプロジェクトをコンパイルします。
%windir%\ Microsoft.NET\Framework\v2.0.50727\csc.exe/r: "C:\ Program Files\NUnit-2.4.8-net-2.0\bin\nunit.framework.dll"/t:library /out:test.dll test.cs
@devio、私はmsiとZipの両方を試しましたが同じ結果になりました。
NUnit-2.4.8-net-2.0.msiを使用してインストールする場合、NUnitアセンブリはGACに追加されます。
VS2005コマンドプロンプトからgacutilを実行して手動で再インストールすることもできます。
Nunit.frameworkへの参照を追加したことを確認してください。持っている場合は、その参照のプロパティでコピーローカルプロパティがtrueに設定されていることを確認してください。
同じ問題が発生し、NUnit-2.4.8-net-2.0.msiを使用してインストールしました。上記の「gacに追加」コメントを拡張して、これが私がしたことです:
「visualsudiocommand Prompt(通常:gacutilがパスにあることを確認してください)」を開き、cd "C:\ Program Files\NUnit 2.4.8\bin"
Gacからnunitエントリの登録を解除します。これを行うには、gacに登録されているnunitエントリを見つけます。
gacutil/l |/i "nunit"> temp.bat && notepadtemp.batを検索します
gacutil/uf nunit.core、Version = 2.4.2.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77
gacutil/uf nunit.framework、Version = 2.4.2.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77
それらを削除するには、batファイルを実行します:temp.bat
必要なnunitdllを登録します。
gacutil/i nunit.core.dll
gacutil/i nunit.framework.dll
現在のNUnitインストール(2.5.10)は、GACに自動的に登録されないことに注意してください。 GACを使用する必要がある場合は、gacutil/iを介して登録します。nunitframeworkpathは通常%Program Files%\ NUnit\net-2.0\framework\nunit-framework
今日、既存のNUnitテストプロジェクトに新しいテストアセンブリを追加しようとしたときに、このエラーメッセージが表示されました。私のテストプロジェクトには、同一のnunit.framework.dllアセンブリへの複数のパス参照があったようです。
NUnitプロジェクトに複数のテストアセンブリがある場合は、テストプロジェクトのnunit.framework参照のPathプロパティを確認することをお勧めします。それらを一致させると、エラーメッセージは消えました。