Мой недавний проект с модульной структурой состоит из основной сборки (назовем ее app
) и нескольких data-provider
. Каждый провайдер находится в отдельном репозитории и реализует некоторый базовый интерфейс, скажем IDataProvider
. Любой человек может реализовать собственный провайдер. Я написал набор тестов (NUnit 3.5) для основных функций, которые находятся в репозитории app
. И он должен запускаться с каждым data-provider
. Этот набор тестов обеспечивает правильную реализацию поставщика.Запуск тестов NUnit из сборки внешнего тестового набора в Visual Studio Test Runner
Поэтому мне нужно выполнить сборку внешних тестов от конкретного data-provider
. Конечно, есть переменные среды, аргументы runner и т. Д., Но я не знаю, как сделать визуализацию Visual Studio Test Runner и выполнить эти тесты из пользовательского интерфейса.
Git Submodules или Git Subtrees может помочь поддержать ссылку на основной реквизит app
из отдельных data-provider
repo. Однако этот подход имеет некоторые дополнительные оговорки.
Очевидно, что я не первый человек, столкнувшийся с такой проблемой. Пожалуйста, поделитесь своим опытом.
EDIT:
Я попытаюсь прояснить этот вопрос. Вот код «приложения», который находится в репозитории «main-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 проект conatins ссылки на составленный MainApp.dll
и MainApp.Tests.dll
. Мне нужно запустить тесты с MainApp.Tests.dll
внутри проекта SimpleProvider с помощью Visual Studio Test Runner.
Просьба показать необходимые скриншоты для иллюстрации. Слова просто сухие. –