4

それで、私の最初の VS(2012)/NUnit 単体テストの経験...

単体テスト プロジェクトは、アセンブリ B を必要とするアセンブリ A (テストする必要があるコード) を参照しています。そのため、アセンブリ B も参照しています。両方のファイルが出力ディレクトリにコピーされます。

ただし、テストを実行すると、アセンブリ B を読み込めないため失敗します。奇妙なことに、別のディレクトリからテストを実行している必要があります。

そこで、Resharper を開き、シャドウ コピーを無効にします。それでも失敗します。

必要なすべてのファイルが参照され、出力ディレクトリにあることを二重および三重にチェックします。彼らです。

いくつかの調査を開始し、この記事を見つけてください。これは、展開を無効にして、出力ディレクトリからテストを実行できることを意味します。ただし、私の単体テスト プロジェクトには、見つけることができる "実行構成ファイル" がありませんが、ウォークスルーのステップ 1 で必要になります。ドラット。

次に、 DeploymentItem属性に出くわしました。これをテストメソッドに追加すると、なんと、うまくいきます。ただし、すべてのテスト メソッドにこの属性を永久に追加するのは避けたいので、より良い解決策を探しています。

出力ディレクトリ内のすべてのファイルをコピーするか、最初にそのディレクトリから実行するように、テストフレームワークに指示する方法を知っている人はいますか? これは、魔法のように隠されているのではなく、シンプルでデフォルトであるべきだと思われます...よろしくお願いします。

私は先に行き、ベントするつもりです。これは、私が今まで遭遇した中で最も脳死した設計上の決定の 1 つです。彼らはプロジェクトファイルを持っていて、どのアセンブリ/ファイルが参照されているかを知っており、「常にコピー」に設定されているかどうかを知っています...それでも、それらすべてを無視します。

デフォルトの動作は、最も単純な「Hello World」プロジェクトのみを実行し、他のすべてを壊して時間を無駄にすることです。これらの開発者は何を考えていますか? ...気分が良くなりました。

4

1 に答える 1

0

追加のファイルをテスト フォルダーにデプロイする必要があり、DeploymentItemAttribute を使用したくない場合は、.testsettings ファイルを作成してソリューションに追加できます。そこで、展開、セットアップ、およびクリーンアップ スクリプトなどのために、追加のファイル/ディレクトリを構成できます。テスト設定ファイルの MSDN の説明を参照してください。

于 2013-04-16T21:04:52.363 に答える