4

私は現在、プロジェクト内のすべてのアセンブリに対して対になった単体テストアセンブリを作成していますが、どちらも同じフォルダにあります。Visual Studioでの単体テストの構成

オープンソース・プロジェクトを見ると
  • MyProjectと/ MyProject.csproj
  • MyProject.Test/MyProject.Test.csproj

、私はいくつかの小さなプロジェクトが1アセンブリ内のすべてのテストを入れて見てきた、と他は私のようにそれを分割します。私は大規模な解決策を扱っているので、すべてのテストを1つのプロジェクトにまとめるのはかなり狂っています。

現在、すべての* .Test.csprojファイルに対してテストを実行するmsbuildロジックがあります。私がすべてのテストを別のフォルダに持っていれば、これを行う必要はありません。

なんらかの良いことがあるかどうかは疑問です。

おかげ

+1

ここに同様の質問があります:) http://stackoverflow.com/questions/1116488/how-do-you-setup-your-unit-test-projects-in-net/1116577#1116577 –

答えて

4

私はそれを同じことを行います方法しかし私はデフォルトの名前空間foを変更します各テストプロジェクトは、プロダクションプロジェクトの名前空間と一致します。したがって、クラスX.Y.Fooのテストは、X.Y.Test.FooTestではなく、X.Y.FooTestにあります。これは、ディレクティブを使用する必要が少なくなり、一般的に簡単になります。

2つのプロジェクトを別々のプロジェクトに保存したい主な理由は、本番用ライブラリにテストを含めるか、テストされていないライブラリを出荷することを避けることです。別のプロジェクト構造を使用すると、ビルドしたものに対して単体テストを実行できます。また、(ライブラリの「感触」を得るときに)見るべきファイルを2倍にすることなく、プロダクションクラスだけを見るのが簡単になります。

最後に、テスト時にinternalメンバーにアクセスする必要がある場合は、常に[InternalsVisibleTo]があることを忘れないでください。

2

私は、各プロジェクトを除いて同じことを行うには、同じルートフォルダの下に独自のフォルダ内にあります。以下に沿って 何か:

ソリューションフォルダ

  • PROJECTAフォルダ
  • ProjectA.Testフォルダ
  • ProjectBのフォルダ
  • ProjectB.Testフォルダ
+0

これは、私たちの新しいスキームです。 – Tangurena

1

私はいつもプロジェクトごとに別々のテストプロジェクトを持っています。その一部は単に組織化が好きですが、ライブラリを他のソリューションで再利用できるように独自のソリューションに分割することにした場合もあります。そのような場合、ライブラリプロジェクトを持っているのは、(1つのプロジェクトのすべてのテストではなく)独自の個別のテストプロジェクトであるため、そのライブラリを破壊するのがずっと簡単です。

3

可能な限り単体テストプロジェクトを少なくすることをお勧めします。その理由は、作成するそれぞれが少なくとも10秒のコンパイル時間を追加するからです。大きなプロジェクトでは、それは加算を開始します。

ここで私が使用してディレクトリ構造です:

PROJECTNAME /支店/トランク/プロジェクト/コード/ codeproject1
PROJECTNAME /支店/トランク/プロジェクト/コード/ codeproject2
PROJECTNAME /支店/トランク/プロジェクト/コードは/ codeproject3
PROJECTNAME /支店/トランク/プロジェクト/テスト/ testproject1
PROJECTNAME /支店/トランク/依存関係 PROJECTNAME /プロトタイプ
PROJECTNAME/...

とtestproject1内で、次のディレクトリ構造:

codeproject1/
codeproject2/
codeproject2 /ウェブ
codeproject2 /ウェブ/ MVC
codeproject3/
codeproject3 /サポート

関連する問題