Еще раз я здесь говорю о Selenium и тестах. Как я говорил в последнем посте « Функциональные тесты с Selenium 2.0» и «cargo-maven-plugin» , возникла проблема: если вы хотите внедрить новый тест Selenium и выполнить его, вы должны выполнить все тесты Selenium , но он неэффективен.
Итак, чтобы решить эту проблему, мы сможем выполнить конкретный тест с использованием maven в командной строке или в Eclipse IDE, что очень продуктивно, и я покажу, как это сделать, в виде простого теста JUnit или TestNG .
Прежде всего, мы создадим абстрактный класс, содержащий все необходимые классы для выполнения тестов Selenium в Eclipse IDE, и наши тесты должны расширять этот абстрактный класс. В этом классе будут, например, конфигурации для запуска / остановки сервера приложений, которые развернут наше приложение, и настройки для создания экземпляра сервера Selenium и его запуска двигателей.
Чтобы помочь менеджеру классов сервера приложений, мы будем использовать Cargo, а сервером приложений будет Tomcat 6x . После этого необходимо добавить зависимости Cargo и Selenium с областью тестирования для обоих. Их можно добавить с помощью Eclipse IDE или файла конфигурации maven (pom.xml), но в этом примере он добавлен в файл pom.xml, как показано ниже:
<dependency> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-core-container-tomcat</artifactId> <version>1.0.6</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium</artifactId> <version>2.0a4</version> <scope>test</scope> </dependency>
/** * Method responsable to set all init tomcat's configuration */ private TomcatExistingLocalConfiguration InitTomcatConfig() { String tomcatHome = System.getenv("TOMCAT_HOME"); if (tomcatHome == null) { throw new IllegalArgumentException("The system property TOMCAT_HOME must be defined."); } TomcatExistingLocalConfiguration localTomcatConfiguration = new TomcatExistingLocalConfiguration(tomcatHome); return localTomcatConfiguration; }
Метод найдет локальный экземпляр Tomcat по переменной среды с именем TOMCAT_HOME и создаст экземпляр, представленный классом TomcatExistingLocalConfiguration .
А теперь мы создадим метод, который запускает сервер приложений Tomcat перед запуском набора тестов, как показано ниже:
// Method execute before all suite tests @BeforeSuite public void setUp() { LocalConfiguration tomcatConfiguration = InitTomcatConfig(); // Containers configuration utilizado("tomcat6x") and war path war = new DefaultDeployableFactory().createDeployable("tomcat6x", "target/example.war", DeployableType.WAR); tomcatConfiguration.addDeployable(war); // Tomcat configurations container = new Tomcat6xInstalledLocalContainer(tomcatConfiguration); container.setHome(tomcatConfiguration.getHome()); // Start o container container.start(); }
После этого классы наших тестов Selenium должны расширить этот абстрактный класс и выполнить с нашими любимыми механизмами тестирования. В моем примере это был TestNG .
Это! Чтобы сделать код более понятным, создайте тесты и сделайте рефакторинг и поддержку приложений менее болезненными.
от: http://english.valdemarjr.net/2011/05/07/execute-selenium-tests-as-unit-test-in-eclipse-ide/
Извините за мой английский . Если у вас есть какие-либо вопросы или затруднения, свяжитесь со мной .