В настоящее время я пишу тесты Selenium WebDriver для различных веб-сайтов, каждый из которых использует одну и ту же проприетарную среду.
Из-за этого существует множество тестовых примеров, которые могут быть очень похожими на разных веб-сайтах. Поэтому я сделал свои тестовые классы настолько универсальными, насколько это возможно, и сделал так, чтобы каждый XPath / CSS Selector / ID, используемый для поиска элементов, был определен в классе Constants
, который уникален для каждого проекта.
Но в некоторых случаях код для одного и того же теста может быть одинаковым на разных сайтах, так как я написал их в общих чертах. Кроме того, каждый тест является прямым / косвенным расширением класса BasicTest
, который содержит код, который, вероятно, будет повторно использоваться различными тестами (например, объявление экземпляра WebDriver и т. Д.)
То, как я думал об установке своегоструктура теста была следующей:
- один общий проект, который «повторно используется» каждым последующим проектом;
- один проект на веб-сайт с собственным определением класса
Constants
иTestSuite
класс, который он может использовать для запуска как общих тестов, так и тестов, специфичных для него самого.
Это позволило бы мне не иметь копий этих общих тестов в каждом из моих тестовых проектов.
Проблема в , что я не знаю, как это настроить. GenericProject
будет содержать тесты, которые требуют переменных от Constant
, но нет смысла иметь универсальный Constants
. Кроме того, смогу ли я вызвать эти тесты внутри своего веб-сайта для проекта TestSuites
? Если я переопределю Constants
в каждом конкретном проекте, будут ли эти константы использоваться для общих тестов, определенных в GenericProject
? Как я могу настроить его так, чтобы я мог повторно использовать классы Проекта А внутри Проекта B, C, D ... и т. Д.?