Как использовать один и тот же набор данных для всех тестов? - PullRequest
0 голосов
/ 23 мая 2019

Я все еще относительно новичок в 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 возникают проблемы, такие как устаревший элемент или элемент не найден при параллельной работе, что я и хочу запускать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...