Мне любопытно, есть ли решение для запуска одних и тех же тестов для нескольких ICollectionFixture
с. Вроде бы InlineData
, но по всему тестовому классу, а не только по методу.
Мне нужна эта функциональность, потому что я хочу посмотреть, проходят ли тесты для разных конфигураций (коммутатор или строка подключения), которые устанавливаются в ICollectionFixture
.
Например У меня есть следующие приборы:
public abstract class BaseTestConfigurationFixture : ConfigurationFixture<BaseTestConfigurationFixture>
{
public BaseTestConfigurationFixture(bool shouldConfigure)
{
/// Configure
}
}
public class TestConfigurationFixtureVersionA : ConfigurationFixture<TestConfigurationFixtureVersionA>
{
public TestConfigurationFixtureVersionA()
: base(false)
{ }
}
public class TestConfigurationFixtureVersionB : ConfigurationFixture<TestConfigurationFixtureVersionB>
{
public TestConfigurationFixtureVersionB()
: base(true)
{ }
}
Теперь я использую эти приборы в следующих коллекциях:
public abstract class BaseTestEnvironmentCollection : ICollectionFixture<BaseTestConfigurationFixture>
{
// This class has no code, and is never created. Its purpose is simply
// to be the place to apply [CollectionDefinition] and all the
// ICollectionFixture<> interfaces.
}
[CollectionDefinition(nameof(TestEnvironmentCollectionVersionA))]
public class TestEnvironmentCollectionVersionA: ICollectionFixture<TestConfigurationFixtureVersionA>
{
// This class has no code, and is never created. Its purpose is simply
// to be the place to apply [CollectionDefinition] and all the
// ICollectionFixture<> interfaces.
}
[CollectionDefinition(nameof(TestEnvironmentCollectionVersionB))]
public class TestEnvironmentCollectionVersionB: ICollectionFixture<TestConfigurationFixtureVersionB>
{
// This class has no code, and is never created. Its purpose is simply
// to be the place to apply [CollectionDefinition] and all the
// ICollectionFixture<> interfaces.
}
Я хочу, чтобы мои тесты запускались один раз с конфигурациями из TestEnvironmentCollectionVersionA
и затем с конфигурациями из TestEnvironmentCollectionVersionB
.
мне также нужно получить доступ к BaseTestConfigurationFixture
внутри моего тестового класса. Похоже, это вызывает проблемы, потому что, если я аннотирую тестовый класс только с одним из своих сборочных приборов, [Collection(nameof(TestEnvironmentCollectionVersionA))]
, я получаю следующую ошибку:
Сообщение: следующие параметры конструктора сделали нет соответствующих данных прибора: BaseTestConfigurationFixture testConfigurationFixture
Эта ошибка не появляется, если я использую только один TestFixture
и CollectionFixture
, без наследования.
Я вижу, что существует ограничение на [CollectionAttribute]
, чтобы не принимать несколько таких атрибутов.
Какой метод следует использовать для достижения этой функциональности?
Спасибо!
РЕДАКТИРОВАНИЕ: Найдено исправление для ошибки, приведенной ниже
Следующие параметры конструктора не имеют соответствующих данных осветителей: BaseTestConfigurationFixture testConfigurationFixture