2015-01-11 4 views
1

Я пытаюсь проверить свое веб-приложение с помощью Selenium, интегрировать тестовые классы с maven. Когда я даю команду mvn integration-test, класс теста распознается, но тесты не выполняются. В конце концов, сборка выполнена успешно.Испытания селена во время теста интеграции mvn

 Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.228 sec 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 13.915s 
[INFO] Finished at: Sun Jan 11 20:15:59 IST 2015 
[INFO] Final Memory: 43M/303M 
[INFO] ------------------------------------------ 

Вот мой pom.xml файл

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Music</groupId> 
    <artifactId>Music</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <properties> 
     <spring.version>3.0.5.RELEASE</spring.version> 
     <spring.security.version>3.2.3.RELEASE</spring.security.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.24</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tika</groupId> 
      <artifactId>tika-app</artifactId> 
      <version>1.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tika</groupId> 
      <artifactId>tika-parsers</artifactId> 
      <version>1.5</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.transaction</groupId> 
      <artifactId>jta</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20140107</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jasypt</groupId> 
      <artifactId>jasypt</artifactId> 
      <version>1.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.dbunit</groupId> 
      <artifactId>dbunit</artifactId> 
      <version>2.4.9</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-simple</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.3.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jmock</groupId> 
      <artifactId>jmock-junit4</artifactId> 
      <version>2.6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context-support</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-taglibs</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-server</artifactId> 
      <version>2.25.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>5.10</version> 
      <classifier>jdk15</classifier> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium.client-drivers</groupId> 
      <artifactId>selenium-java-client-driver</artifactId> 
      <version>1.0.1</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.4</version> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.0</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <skip>true</skip> 
        <systemProperties> 
         <property> 
          <name>user</name> 
          <value>tobrien</value> 
         </property> 
         <property> 
          <name>name</name> 
          <value>Tim O'Brien</value> 
         </property> 
        </systemProperties> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>integration-test</phase> 
         <goals> 
          <goal>test</goal> 
         </goals> 
         <configuration> 
          <skip>false</skip> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>selenium-maven-plugin</artifactId> 
       <executions> 
        <execution> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>start-server</goal> 
         </goals> 
         <configuration> 
          <background>true</background> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

код тест:

public class FunctionalTest { 
private Selenium selenium; 

     @BeforeClass 
     public void startSelenium() { 
     this.selenium = new DefaultSelenium("localhost", 8080, "*chrome", 
      "http://www.twitter.com"); 
     this.selenium.start(); 
     } 
@Test 
     @Parameters({ "user", "name" }) 
     public void testTwitter(String user, String name) { 
     try { 
      selenium.open("http://www.twitter.com/" + user); 
      selenium.waitForPageToLoad("3000"); 
      assert selenium.isTextPresent(name); 

     } catch (SeleniumException e) { 
      throw e; 
     } 
     } 
@AfterClass(alwaysRun = true) 
     public void stopSelenium() { 
     this.selenium.stop(); 
     } 
} 
+0

Вы можете добавить тестовый код? – xyz

+0

Почему у вас есть 'skip' set? –

+0

Я только что выполнил файл pom.xml, указанный на http://books.sonatype.com/mcookbook/reference/ch08s02.html сайте – kumuda

ответ

0

У вас есть скип тесты тег добавлен в конфигурации Maven плагина верного

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>true</skip> 
      ... 
     </plugin> 

эта конфигурация пропускает maven запускает тесты для всех фаз ниже «фазы предварительной интеграции». Попробуйте установить это значение в значение false или полностью удалить.

0

По умолчанию плагин maven-surefire работает только на этапе тестирования. Вам необходимо включить его, добавив дополнительное выполнение, которое выполняется на этапе интеграции-тестирования. Вот лучшая практика, где нормальные тесты называются * Test.java и интеграционные тесты названы * IT.java:

<!-- Integration tests --> 
<!-- Exclude *IT.java at test phase --> 
<!-- Include *IT.java at integration-test phase, but exclude normal tests --> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.7.1</version> 
    <configuration> 
    <excludes> 
     <exclude>**/*IT.java</exclude> 
    </excludes> 
    </configuration> 
    <executions> 
    <execution> 
     <id>integration-test</id> 
     <goals> 
     <goal>test</goal> 
     </goals> 
     <phase>integration-test</phase> 
     <configuration> 
     <excludes> 
      <exclude>**/*Test.java</exclude> 
     </excludes> 
     <includes> 
      <include>**/*IT.java</include> 
     </includes> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Добавить конфигурацию в Maven-плагин-верный, чтобы исключить тесты, которые заканчиваются «IT.java», чтобы избежать выполнения интеграционных тестов во время фазы тестирования. Затем добавьте выполнение для тестов интеграции, которое выполняется на этапе интеграции-тестирования. Чтобы переопределить общую конфигурацию плагина, которая используется для выполнения этапа тестирования, укажите конфигурацию в ходе выполнения интеграционного теста. Эта конфигурация включает в себя интеграционные тесты («* IT.java») и исключает нормальные тесты («* Test.java»), поскольку на этапе интеграции-тестирования должны выполняться только тесты интеграции. Обычные тесты все равно будут выполняться один раз на этапе тестирования, но не снова на этапе интеграции.

Смежные вопросы