2

別のプロジェクトでいくつかの単体テストを作成しました。開発中は、毎回 dll を NUnit.exe にロードして結果を確認しました。単体テストの作成が完了したので、単体テストを整理してソリューションに添付する方法について説明します。

ソリューションディレクトリに「ツール」フォルダーを作成してから、NUnit関連のすべてのライブラリを配置し、テストプロジェクトのビルド後のイベントで、以下のようにnunitを接続して動作させました。

"$(SolutionDir)tools\nunit\nunit-console.exe" "$(TargetPath)"

しかし、私のテストの 1 つで、sqlite DB を参照しています。その場所をハードコードすると問題なく動作しますが、「App_Data」フォルダーの下のテストプロジェクトに配置するつもりです。そのため、以下のコードで相対パスを取得しようとしましたが、機能していません。しかし、ファイルを「tools」フォルダーにコピーすると、正常に機能します。実行コンテキストはNUnitフォルダーからのものだと思います。

Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),"App_Data\\test.txt")
4

1 に答える 1

0

特に nunit が必要ない場合は、組み込みの Visual Studio サポートを単体テストに使用することもできます...最新の Express エディションにも組み込まれており、このような問題に苦労する必要はありません。 )

いずれにせよ、単体テストの基本を誤解していると思います。実際のデータベースに対してテストすることはありません。これは非常に悪い習慣です。このトピックについていくつかの調査を行い、mockingこのようなものの背後にある理論を確認する必要があります.

于 2013-04-01T22:26:38.713 に答える