2012-05-02 12 views
0

私はlog4netライブラリをnunitでテストすることができません。私はGoogleから返された検索結果を読みましたが、理解できませんでした。nunitとlog4net

これは私が得ているエラーです。

System.IO.FileNotFoundException:ファイルまたはアセンブリ 'log4netの、バージョン= 1.2.10.0、文化=中立、 なPublicKeyToken = 692fbea5521e1304' またはその依存関係の1つをロードできませんでした。 システムは、指定されたファイルを見つけることができません。

私のnunitテストプロジェクトでは、残りのプロジェクトが使用している設定ファイルを追加しても運が足りないlog4net dllの正しい参照を追加しました。

log4net libarayを使用するMy ConsoleアプリケーションとテストWebアプリケーションが正しく動作しています。

私はlog4net nunitテストプロジェクトに問題があるようです。

私はlog4netライブラリを含む簡単なnunitテストをどのように始めることができますか?

+0

プロジェクトの出力フォルダを変更しましたか?参照のCopyLocalがtrueに設定されていますか? – Anton

答えて

1

あなたがテストしようとしているものであれば、ILogを受け入れる必要があります。それからあなたはそれを嘲笑して、テストしようとしているものに渡すべきです。 log4netのバージョンはまったく重要ではありません。あなたのテストでは、log4netが存在することを知るべきではありません。 Rhinomocksを使用して

、これは次のようになります。

MockRepository mocks = new MockRepository(); 
ILog mockLog = mocks.DynamicMock<ILog>(); 

代わりにあなたがスタブに行くことができる:

ILog mockLog = MockRepository.GenerateStub<ILog>(); 
0

log4net.dllのVersionがテストプロジェクトとテストで参照されているプロジェクト(btw最新バージョンのlog4netは1.2.11.0)で同じであることを確認してください。 Copy Localがtrueに設定されていることも確認します。

log4netライブラリを使用している場合は、これはおそらくユニットテストではなく統合テストです。

0

ダブル実行時には、あなたが含まれているファイルlog4net.dll確認してください。プロジェクトの.NETランタイムCLRと一致しないようです。あなたのアプリケーションのターゲットNETバージョン(プロジェクト - >プロパティ)を確認し、log4net.dllのターゲットバージョンと一致することを確認してください。 log4netのバージョン1.2.11にはバージョン4.0までのバイナリが含まれていますが、クライアントプロファイルのバージョンは完全なバージョンとは異なり、独自のdllファイルが必要です。