Я все еще относительно новичок в Selenium, так что это может показаться глупым вопросом.Я пытаюсь автоматизировать тестирование двух веб-сайтов, используя один и тот же веб-шаблон, и не хотел создавать отдельный проект для каждого, поскольку код практически идентичен.
До сих пор, пытаясь сделать оба сайта в одном проекте, я должен был бы добавить следующее к каждому тесту, который я делаю:
[TestCase("http://website1.com", "http://website2.com"]
public void Test1(string url1, string url2){
...
}
[TestCase("http://website1.com", "http://website2.com"]
public void Test2(string url1, string url2){
...
}
Еще одна вещь, которую я пытался сделать, это использоватьаннотацию TestFixture и только что создал конструктор для ее принятия:
[TestFixture(typeof(ChromeDriver), "http://website1.com"), Parallelizable]
[TestFixture(typeof(ChromeDriver), "http://website2.com")]
public class Home<TWebDriver> where TWebDriver : IWebDriver, new()
{
IWebDriver driver;
string homePage = string.Empty;
string browser = string.Empty;
ICapabilities capabilities;
public Home(string url)
{
homePage = url;
}
Но другой моей проблемой является то, что мой проект также требует параллельного тестирования в FireFox и Internet Explorer, что будет больше похоже на это:
[TestFixture(typeof(ChromeDriver), "http://website1com"), Parallelizable]
[TestFixture(typeof(ChromeDriver), "http://website2.com")]
[TestFixture(typeof(InternetExplorerDriver), "http://website1.com")]
[TestFixture(typeof(InternetExplorerDriver), "http://website2.com")]
[TestFixture(typeof(FirefoxDriver), "http://website1.com")]
[TestFixture(typeof(FirefoxDriver), "http://website2.com")]
Таким образом, это выглядит как беспорядок, и его сложнее поддерживать, если для тестирования требуются новые браузеры или добавлен другой веб-сайт.
Я рассматривал вопрос о создании списка URL длятесты для вызова, но если я вызываю assert, проверяющий один из URL-адресов, а затем он терпит неудачу, он больше не будет тестировать другие URL-адреса.
Итак, повторяя мой вопрос, как мне проверить те же данные (URL-адреса)на все мои тесты и новый тест без необходимости повторного добавления того же TestCase?Или, если я пойду не так, как надо.
Редактировать: Также при последнем выполнении с TestFixture возникают проблемы, такие как устаревший элемент или элемент не найден при параллельной работе, что я и хочу запускать.