Платформа тестирования C# с настраиваемыми параметрами во время выполнения?C#

Место общения программистов C#
Anonymous
Платформа тестирования C# с настраиваемыми параметрами во время выполнения?

Сообщение Anonymous »

У меня есть множество библиотек фикстур на C#, и теперь я хочу использовать их для интеграционных тестов продукта. У меня больше всего опыта использования xunit.
Цель этого вопроса состоит в том, что существует несколько транспортов для настройки этого продукта, но метод тот же, поэтому общение абстрагируется до интерфейса, который конкретные транспорты реализуются для связи этой библиотеки с физическим устройством.
Параметризация необходима для:
  • Передачи транспортный объект для этого теста

    Цель этого — написать один тест, а затем параметризовать, какой транспорт мы тестируем.
[*]Адрес устройств на шине

Мой текущий подход заключается в написании теста, а затем используйте встроенные данные, чтобы указать тип транспорта

Код: Выделить всё

[Theory]
[InLineData(new TransportA())]
[InLineData(new TransportB())]
public void Test(ITransport transport)
{
// Test
}
Однако я больше ищу совершенно отдельные пространства имен, чтобы существовали TransportA.TestA и TransportB.TestA, где TestA — это один и тот же код. Сначала я думал сделать это абстрактным классом, а затем у Transports был конкретный тестовый класс, но я не был уверен, как xunit будет обрабатывать тестовые атрибуты, которые он не может запустить?
Вдобавок к проблеме транспорта это адрес шины, который я не могу решить. В этом запуске мы можем тестировать адрес 0, но затем мы можем протестировать адрес 1? Возможно ли это для параметра конфигурации времени выполнения? Моим решением была конфигурация json, которую тесты загружали бы с такими параметрами времени выполнения.

Подробнее здесь: https://stackoverflow.com/questions/783 ... ble-params

Вернуться в «C#»