モジュラー構造の最近のプロジェクトは、メインアセンブリ(名前はapp
としましょう)と複数のdata-provider
で構成されています。各プロバイダは別々のリポジトリにあり、基本的なインタフェース(例:IDataProvider
)を実装しています。どの人も、自分のプロバイダを実装することができます。 app
リポジトリにある主な機能のテストスイート(NUnit 3.5)を作成しました。そしてそれはそれぞれdata-provider
で実行されるべきです。このテストスイートは、プロバイダが正しく実装されるようにします。Visual Studio Test Runnerの外部テストスイートアセンブリからNUnitテストを実行
したがって、特にdata-provider
から外部テストアセンブリを実行する必要があります。もちろん、環境変数、ランナー引数などがありますが、私はVisual Studio Test RunnerをUIから表示し実行する手がかりがありません。
Git SubmodulesまたはGit Subtreesは、別のdata-provider
リポジトリからメインのapp
リポジトリへのリンクを維持するのに役立ちます。しかし、このアプローチにはいくつかの追加の警告があります。
私はこのような問題に直面するのは初めてではないことは明らかです。あなたの経験を共有してください。
EDIT:
私は質問を明確にしようとするでしょう。以下は "main-app"リポジトリにある "app"のコードです。
// repository "main-app"
namespace MainApp
{
public interface IDataProvider
{
string Concat(params string[] arg);
}
}
namespace MainApp.Tests
{
[TestFixture]
public class SampleTests
{
[Test]
public void GetDataTest(IDataProvider provider)
{
Assert.AreEqual("ab", provider.Concat("a", "b"));
}
}
}
そしてここプロバイダ実装である(別のリポジトリに存在する)
// repository "simple-provider"
namespace MainApp.SimpleProvider
{
public class SimpleProvider : IDataProvider
{
public string Concat(params string[] arg)
{
return string.Concat(arg);
}
}
}
SimpleProviderプロジェクトがコンパイルさMainApp.dll
とMainApp.Tests.dll
への参照をconatins。 Visual Studio Test Runnerを使用してSimpleProviderプロジェクト内のMainApp.Tests.dll
からテストを実行する必要があります。
説明のために必要なスクリーンショットを示してください。言葉は単純に乾いている。 –