Чтобы получить более подробную информацию, у нас есть серия тестов, которые мы хотим дублировать в трех рамках (с использованием Selenium для стимуляции пользовательского интерфейса): IE, Mozilla и Chrome. Первым решением было дублирование тестов в отдельных тестовых классах, т. Е. Каждый тестовый класс имел те же 20 тестовых примеров с другой структурой в конструкторе. Второе решение заключается в использовании параметризованных входов (или теории XUnit) с каждым типом каркаса в качестве входного сигнала:Как использовать автоматические интеграционные тесты для нескольких фреймворков (интернет-браузеров) без дублирования усилий?
/// <summary>
/// The non-default constructor that initializes
/// necessary instances of objects that are being used
/// </summary>
public VerifyViewUsingChrome() {
_testBases = new Dictionary<FunctionalTestBase.DriverType, TestBase>();
_testBases.Add(FunctionalTestBase.DriverType.Chrome, new TestBase(FunctionalTestBase.DriverType.Chrome));
_testBases.Add(FunctionalTestBase.DriverType.IE, new TestBase(FunctionalTestBase.DriverType.IE));
_testBases.Add(FunctionalTestBase.DriverType.FireFox, new TestBase(FunctionalTestBase.DriverType.FireFox));
}
/// <summary>
/// Our simple country display test.
/// </summary>
[InlineData(FunctionalTestBase.DriverType.Chrome)]
[InlineData(FunctionalTestBase.DriverType.FireFox)]
[InlineData(FunctionalTestBase.DriverType.IE)]
[Theory]
public void TestADisplayedForACountry(FunctionalTestBase.DriverType testBase) {
_testBases[testBase].TestADisplayedForACountry();
}
проблемы с этой реализацией является то, что все 3 реализаций должны быть запущены для каждого теста, который требует некоторых накладные расходы. В идеале мы будем запускать все тесты IE, а затем создавать фреймворк Firefox и запускать эти тесты, прежде чем продолжить работу с Chrome.
Это может быть невозможно с помощью тестовой среды, но для нас есть удобные связки с нашим сервером сборки, поэтому сохранение формата теста было бы идеальным.
Вы используете Selenium? – trailmax
Да. Именно так мы стимулируем пользовательский интерфейс. –
Возможно, это должно было быть упомянуто в вопросе или тегах. Но теперь нет пота - вы нашли решение, которое вам подходит. – trailmax