testng.xml не се изпълнява от pom.xml по време на изпълнение на тестове за селен

Създадох проект Maven в Eclipse за изпълнение на Selenium тестове. Написах TestSuite като testng.xml. Обичам да стартирам този testng.xml от pom.xml.

Когато стартирах pom.xml (Щракнете с десния бутон върху pom.xml -> Maven test), изграждането беше успешно, но не беше стартиран тест. Резултатът от теста е следният:

T E S T S

Резултати: Тестове: 0, Неуспехи: 0, Грешки: 0, Пропуснати: 0

Структурата на моя проект е следната:

въведете описание на изображението тук

Моят testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression Test" verbose="2">
    <test name="Google" preserve-order="true">
        <classes>
            <class name="com.ripon.selenium.google.Abcd" />
            <class name="com.ripon.selenium.google.GoogleTest2" />
        </classes>
    </test>
</suite>

Моят 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>com.ripon.test</groupId>
  <artifactId>SeleniumTestMaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
        <resources>
            <resource>
                <directory>/src/test/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                    <version>2.3.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>selenium-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.12.4</version>
                        <configuration>
                            <suiteXmlFiles>
                                <suiteXmlFile>/src/test/resources/testng.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
  <dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.41.0</version>
        <scope>test</scope>
    </dependency>
  </dependencies>
</project>

person Ripon Al Wasim    schedule 25.04.2014    source източник
comment
Преименувайте теста си на GoogleTest.java въз основа на конвенциите за именуване. Не използвайте maven-surefire-plugin за изпълнение на интеграционни тестове (maven-failsafe-plugin). Ако използвате maven-failse-plugin, следвайки конвенциите за именуване за интеграционни тестове. Вижте документи за maven-failsafe-plugin   -  person khmarbaise    schedule 25.04.2014
comment
Благодаря khmarbaise. Преименувах тестовия файл според конвенцията за именуване. Преименувах тестовите си файлове на AbcdTest.java и GoogleTest.java. След това моят TestSuite работи добре. Няма нужда да променяте/модифицирате в моя pom.xml   -  person Ripon Al Wasim    schedule 28.04.2014


Отговори (2)


Да, тестовият клас трябва да завърши с тест [*Test] за Maven; По подразбиране ще видите име на клас AppTest.

Няма промени в TestNG.xml; Уверете се, че вашият POM файл изглежда подобно на този по-долу :) [Видях ви да разпитвате вчера чрез групов чат в Skype]

<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>groupidhere</groupId>
  <artifactId>artifactidhere</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>artifactidhere</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <plugins>
    <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
           <encoding>UTF-8</encoding>
        </configuration>
    </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.2</version>
        <configuration>                        
          <suiteXmlFiles>
               <suiteXmlFile>testng.xml</suiteXmlFile>              
          </suiteXmlFiles>         
        </configuration>       
      </plugin>   
    </plugins>
  </build>

  <dependencies>           
    <dependency>
    <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
    </dependency>           
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-server</artifactId>
      <version>2.35.0</version>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.35.0</version>
      </dependency>
      <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-firefox-driver</artifactId>
      <version>2.35.0</version>
    </dependency>           
  </dependencies>
</project>
person Prashanth Sams    schedule 25.04.2014

Моля, премахнете наклонената черта в началото на src. / в началото ще посочи абсолютен път.

person niharika_neo    schedule 26.04.2014
comment
Благодаря niharika_neo. Но работи със или без наклонена черта (/). Основните проблеми са за името на файла: постфиксът на файла трябва да бъде Test - person Ripon Al Wasim; 28.04.2014
comment
Доколкото знам, xml файлът на пакета е нещото, което ръководи какви класове да се изпълняват, а не конвенциите за именуване. Анотациите идентифицират тестове. Редовно провеждам тестове от класове, които не съдържат Test в името на класа. Някак си усещам, че вашият пакет xml файл все още не е препратен. - person niharika_neo; 28.04.2014
comment
Когато използвах Ant и TestNG, конвенцията за именуване на класове не е въпрос. - person Ripon Al Wasim; 28.04.2014
comment
Да, използвам maven. - person niharika_neo; 28.04.2014
comment
Името на вашия клас без постфикс Test ли е? - person Ripon Al Wasim; 28.04.2014
comment
Да, само за да пробвам, целенасочено го преименувах на нещо без тест и тестът се проведе успешно, когато направих mvn тест с моя xml пакет. - person niharika_neo; 28.04.2014
comment
Можете ли да проверите дали увеличавате многословността във вашия xml, отразява ли се в изхода само за да видите дали вашият xml се чете? - person niharika_neo; 28.04.2014
comment
Можете ли да предоставите вашите pom.xml и testng.xml? - person Ripon Al Wasim; 28.04.2014
comment
‹plugin› ‹groupId›org.apache.maven.plugins‹/groupId› ‹artifactId›maven-surefire-plugin‹/artifactId› ‹version›2.16‹/version› ‹configuration› ‹suiteXmlFiles› ‹suiteXmlFile›src/ тест/ ресурси/TestNG-Params.xml‹/suiteXmlFile› ‹/suiteXmlFiles› ‹/configuration› ‹/plugin› - person niharika_neo; 28.04.2014
comment
Testng xml : ‹suite name=My Suite1 parallel=methods thread-count=5 › ‹test verbose=2 name=Default1 test› ‹parameter name=name value=NotNiharika›‹/parameter› ‹parameter name=fname value=Niharika› ‹/parameter› ‹classes› ‹class name=com.nv.demo.testngtests.Params/› ‹/classes› ‹/test› ‹/suite› - person niharika_neo; 28.04.2014
comment
Извинявам се за закъснението. Натоварен ден! - person niharika_neo; 28.04.2014