2016-09-21 11 views
-1

DogServiceという名前のプロジェクトを使用するソリューションがいくつかあり、ソリューション内でプロジェクトの参照として追加されています。プロジェクトをテストする場所はどこですか?

私はDogServiceのユニットテストを作成し、DogService.Testsそれを呼び出す、どこ私は物理的にこのプロジェクトを置くだろうしたい場合は?

プロジェクトを参照するすべてのソリューションに、プロジェクトの単体テストを含める必要がありますか?

+1

IMO、それらはDogServiceプロジェクトと同じソリューションに配置する必要があります。 DogService.dllを参照するだけのプロジェクトは、DogServiceプロジェクト自体をテストするべきではありません。 – itsme86

+0

@ itsme86複数のソリューションがプロジェクト参照としてDogServiceを参照していますが、すべてのソリューションでテストプロジェクトも取得できますか? –

+1

答えは純粋に意見ベースですが、_project_参照を使用してコードを変更できるので、コードが変更されたときにユニットテストを更新して実行できるように、ユニットテストプロジェクトを含める必要があります。 –

答えて

1

DogServiceの使い方によって異なります。しかし、ドッグサービスの変更がソリューションのいずれかから来る可能性がある場合、それぞれのソリューションはユニットテストを追加する必要があります。これはとうまく動作するように最適化され

/Lib 
     /DogService 
      /DogService 
      /DogServiceTests 

    /MainProject/... 

のような一般的な構造化ライブラリでは: -

https://github.com/ingydotnet/git-subrepo

また、継続的ビルド・ツールは、プル要求の一部としてそれを構築し、すべてのテストを実行しますライブラリを作成し、各ライブラリのマスターにマージすることができます。

また、プライベートナゲットリポジトリを使用して、ライブラリをあらかじめ組み立てられたアセンブリとして配布することもできます。これを行うと、各ソリューションでテストする必要はありません。これの唯一の欠点は、複数のライブラリにまたがって変更を加えることはやや面倒かもしれません。

+0

gitsubrepを使用します。この時点では、ブランチ 'issue/142'を使用します。 –

関連する問題