簡體   English   中英

在Maven中運行TestNG測試失敗,因為拆卸方法

[英]Running TestNG tests in Maven fails because teardown method

我在Maven上運行testNG測試時遇到問題,問題是我認為我的測試既沒有並行執行也不以正確的順序執行,我之所以這樣說是因為每次我執行call mvn test來使用我的測試時,得到錯誤:

Running com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG
Configuring TestNG with: org.apache.maven.surefire.testng.conf.TestNG652Configurator@4ba33d48
Tests run: 3, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 0.484 sec <<< FAILURE!
tearDown(com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG)  Time elapsed: 0.348 sec  <<< FAILURE!
java.lang.NullPointerException
    at com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG.tearDown(TestLanzadorIdealistaTestNG.java:118)

顯然,我正在嘗試在測試類上執行@AfterClass方法,這就是為什么我得到NULL異常的原因。

public class TestLanzadorIdealistaTestNG {

    private RemoteWebDriver driver;
    @Parameters({ "browser","platformBrowser","versionBrowser","URL_NODE_HUB" })

    @Test
    public void generoDriver(String browser, String platformBrowser,String versionBrowser,String URL_NODE_HUB) throws InterruptedException, MalformedURLException{

        DesiredCapabilities cap = null;
        Platform plataform = null;


        /**
         * - INICIO - Controlamos la plataforma en la que se va a lanzar el test
         */

        if (platformBrowser.equals("MAC")){
            plataform = Platform.MAC;
        }

        if (platformBrowser.equals("WINDOWS"))
        {
            plataform  = Platform.WINDOWS;
        }

        if (platformBrowser.equals("LINUX")){
            plataform = Platform.LINUX;
        }

        if (platformBrowser.equals("")) // caso por defecto
        {
            plataform = Platform.ANY;
        }
        /**
         * -FIN- Controlamos la plataforma en la que se va a lanzar el test
         */


        /**
         * - INICIO - logica para lanzar segun version del navegador
         */

        if (browser.equals("firefox"))
        {
            cap = DesiredCapabilities.firefox();
            cap.setPlatform(plataform);
            cap.setBrowserName(browser);
            cap.setVersion(versionBrowser);
        }else if (browser.equals("chrome")) {
            cap = DesiredCapabilities.chrome();
            cap.setPlatform(plataform);
            cap.setBrowserName(browser);
            cap.setVersion(versionBrowser);
        } else if(browser.equals("internet explorer")){
            cap = DesiredCapabilities.internetExplorer();
            cap.setPlatform(plataform);
            cap.setBrowserName(browser);
            cap.setVersion(versionBrowser);
        } else if (browser.equals("safari")){
            cap = DesiredCapabilities.safari();
            cap.setPlatform(plataform);
            cap.setBrowserName(browser);
            /**
             * - INICIO - Controlamos el caso en que no pusimos version de navegador alguna
             */

            if (versionBrowser.equals("")){
                cap.setVersion("");
            }
            else
            {
                cap.setVersion(versionBrowser);
            }
            /**
             * - FIN - Controlamos el caso en que no pusimos version de navegador alguna
             */

        } 

        /**
         * - FIN - logica para lanzar segun version del navegador
         */
        cap.setJavascriptEnabled(true); 
        driver = new RemoteWebDriver(new URL(URL_NODE_HUB), cap);

    }

/**
 * Test en el cual vamos a chequear que al seleccionar comprar como tipo de operacion
 * habitacion y vacacional es desactivado y no posible de seleccionar en el area 
 * @throws InterruptedException
 * @throws MalformedURLException
 */

@Test (dependsOnMethods={"generoDriver"})
    public void ComprarDeactivateHabitacionVacacional() throws InterruptedException, MalformedURLException{
        com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.ManejadorPrograma manejador = new com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.ManejadorPrograma(driver);
        manejador.logicaPrograma();

}

@AfterTest
public void tearDown(){
        driver.quit();
}

這是我的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>EjemploSeleniumGridMavenTestNG</groupId>
  <artifactId>EjemploSeleniumGridMavenTestNG</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>

      <dependency>
          <groupId>org.seleniumhq.selenium</groupId>
          <artifactId>selenium-java</artifactId>
          <version>2.42.2</version>
      </dependency>

      <dependency>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
          <version>6.8.8</version>
      </dependency>

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.1</version>
      </dependency>

  </dependencies>

</project>
<plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
            <trimStackTrace>false</trimStackTrace>
          <suiteXmlFiles>
            <suiteXmlFile>src/test/resources/test-properties.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
      </plugin>
</plugins>

這是我的test-properties.xml

<suite name="Suite" parallel="tests" verbose="3" thread-count="3">

  <test name="Lanzador test Idealista TestNG without parallel (firefox)">
    <parameter name="browser" value="firefox" />
    <parameter name="platformBrowser" value="MAC" />
    <parameter name="versionBrowser" value="31.0" />
    <parameter name="URL_NODE_HUB" value="http://localhost:4444/wd/hub"/>
    <classes>
      <class name="com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG"/>
    </classes>
  </test> <!-- Test -->

    <test name="Lanzador test Idealista TestNG without parallel (safari)">
    <parameter name="browser" value="safari" />
    <parameter name="platformBrowser" value="MAC" />
    <parameter name="versionBrowser" value="" />
    <parameter name="URL_NODE_HUB" value="http://localhost:4444/wd/hub"/>
    <classes>
      <class name="com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG"/>
    </classes>
  </test> <!-- Test -->

  <test name="Lanzador test Idealista TestNG without parallel (chrome)">
    <parameter name="browser" value="chrome" />
    <parameter name="platformBrowser" value="MAC" />
    <parameter name="versionBrowser" value="" />
    <parameter name="URL_NODE_HUB" value="http://localhost:4444/wd/hub"/>
    <classes>
      <class name="com.pruebas.seleniumGridTestNG.dataDrivenParallelXML.TestLanzadorIdealistaTestNG"/>
    </classes>
  </test> <!-- Test -->

</suite> <!-- Suite -->

有人可以幫我嗎?

<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>src/test/resources/test-properties.xml</suiteXmlFile>              
          </suiteXmlFiles>
          <testFailureIgnore>true</testFailureIgnore>         
        </configuration>       
      </plugin>   
    </plugins>
  </build>
  <reporting>
     <plugins>
         <!-- TestNG-xslt configuracion -->
         <plugin>
             <groupId>org.reportyng</groupId>
             <artifactId>reporty-ng</artifactId>
             <version>1.2</version>
             <configuration>
                 <!-- Directorio de salida para los reportes en xslt de testng -->
                 <outputdir>/target/testng-xslt-report</outputdir>
                 <sorttestcaselinks>true</sorttestcaselinks>
                 <testdetailsfilter>FAIL,SKIP,PASS,CONF,BY_CLASS</testdetailsfilter>
                 <showruntimetotals>true</showruntimetotals>
             </configuration>
         </plugin>
     </plugins> 
  </reporting>


  <dependencies>           
    <dependency>
    <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</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.42.2</version>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.42.2</version>
      </dependency>       
  </dependencies>

  <pluginRepositories>
    <pluginRepository>
      <id>reporty-ng</id>
      <url>https://github.com/cosminaru/reporty-ng/raw/master/dist/maven</url>
    </pluginRepository>
  </pluginRepositories>

</project>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM