Как только я обнаружил [Theory]
решение было тривиальным. Выполнение теста теперь указывает поставщика для использования. Я предварительно определил файл конфигурации для использования каждым провайдером; это копируется в файл конфигурации, который будет использоваться, и тест будет выполнен.
[SkippableTheory]
[InlineData("MsSql")]
[InlineData("Sqlite")]
[InlineData("InMemory")]
public async Task DoesNotLoadUnspecifiedNavigationPropertiesTest(string provider)
{
Skip.If(provider == "MsSql" && !SkipHelper.IsWindowsOS(), "Ignore when not executing on Windows");
async Task Test()
{
// Perform the test with assertions
}
await ExecuteTestForProvider(provider, Test);
}
private async Task ExecuteTestForProvider(string provider, Func<Task> test)
{
try
{
SetConfiguration(provider);
Initialize();
await test.Invoke();
}
finally
{
Teardown();
}
}
Полная реализация может быть найдена здесь