web-dev-qa-db-ja.com

プロジェクトの単体テストを実行するようにNUnitを設定するにはどうすればよいですか?

NUnitを使用して、.NET4.0上のVisualStudio 2010でC#でテストケースを作成し始めています。 NUnitを使用して、.dll(C#クラスライブラリプロジェクト)のパブリック関数に対してテストしたいと思います。プロジェクトで動作するようにNUnitを設定するにはどうすればよいですか?

  1. テストするために同じクラスライブラリプロジェクトにNUnitコードを追加する必要がありますか、それともNUnitテストケースの同じソリューションに別のプロジェクトを追加する必要がありますか?ベストプラクティスはどれですか?

  2. NUnitテストケース用に別のプロジェクトを作成する必要がある場合、それをクラスライブラリプロジェクトまたは実行可能ファイルにする必要がありますか?クラスライブラリプロジェクトにした場合、どうすれば実行できますか?

  3. 実行可能ファイルおよびnotクラスライブラリプロジェクトに対してテストする必要がある場合、プロセスやプロジェクトに変更はありますか?

15
George2

Re 2

通常、[テストケースdll]は[ビジネスロジックdll]とは別にしてください。ビジネスロジックdllには、関心の分離と展開/保守の簡素化のために、NUnitの知識を含めるべきではありません。

テストケースdllには、NUnitおよびビジネスロジックdllへの参照が含まれている必要があります。

名前空間を共有する必要はありません。ビジネスロジックdllのAssemblyInfo.csファイルを変更して内部をテストケースdllに公開することにより、ビジネスロジックdllの内部メンバーをテストケースdllに公開できます。これにより、ビジネスロジックdllで必要な可視性を維持できます。

バイオハザード3

テストケースはdll(つまりクラスライブラリプロジェクト)に入れる必要があります。これをNUnitのUIに直接ロードするか、統合環境でNUnitのコンソールランナーを使用してテストを自動的に実行できます。

私のやり方:

  • テストケースクラスライブラリプロジェクトのプロパティを開き、[デバッグ]タブ
  • 外部プログラムで開くように設定:これをnunit.exeにポイントします
  • コマンドライン引数をテストケースdllの正確な名前に設定します:MyTests.dll
  • 作業ディレクトリ:省略記号ボタンをクリックするだけで、現在のビルド構成のテストdll出力ディレクトリが事前に選択されます。
  • テストプロジェクトをソリューションのデフォルトの開始プロジェクトに設定します。このように、F5(または[再生]ボタン)を押すたびに、NUnitは更新されたテストがプリロードされた状態ですぐに表示されます-非常に便利で迅速です。

幸運を祈ります-テストプロジェクトタイプavlも試してみてください。 Visual Studioでは、NUnitと非常によく似ています。私はまだNUnitを好みますが、学習しながらいくつかのさまざまなオプションを試すのは良いことです。

15
pelazem
  1. 単体テストは、同じソリューションの下で別のテストプロジェクトに入れる必要があります。
  2. はい、クラスライブラリプロジェクトにします。 NUnitでテストを実行する場合は、 このチュートリアルでその方法を説明できます

コメントについて:NUnit.exeをテストクラスライブラリ(ユニットテストを含むもの)のデフォルトの開始実行可能ファイルとして設定する場合、テストするDLL;初回以降、テストを実行しているプロジェクトが記憶されます。

また、ユニットテストライブラリに他のプロジェクトを参照する参照があることを確認する必要があります。

繰り返しますが、私がリストしたチュートリアルはこれらすべてを通過します。

8
George Stocker

2:すべてのNUnitテストを同じソリューションの別々のプロジェクトに配置する必要があります。プロジェクトをビルドするとテストがビルドされ、その逆も同様です。このプロジェクトをTDDしているとき(そうしていますよね?)、テストを実行するだけで、必要なものがすべてビルドされます。 3:クラスライブラリ。 NUnitを使用している場合は、Windowsで実行可能である必要はありません。テストランナーを使用する必要があります。

2
KeithS

テストコード用に別のテストプロジェクトを追加し、そこからNUnitとテスト対象のライブラリを参照します。これはクラスライブラリである必要があり、NUnitテストランナーによって実行されます。 nunit-console test_Assembly.dllドキュメント を参照してください。

2
Lee