2016-08-04 138 views
0

我試圖用mvn執行配置文件-PProfileName 但是我收到錯誤,看來我的pom.xml正確,testngsuite.xml也正確。 我可以執行從我的.java代碼沒有任何問題無法在maven項目中運行TestNG測試套件

的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.bilog</groupId> 
    <artifactId>IncidentDashboardAutomation</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

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

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

    <dependencies> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>6.9.10</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.53.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.relevantcodes</groupId> 
      <artifactId>extentreports</artifactId> 
      <version>2.40.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.ini4j</groupId> 
      <artifactId>ini4j</artifactId> 
      <version>0.5.4</version> 
     </dependency> 
     <dependency> 
      <groupId>com.paulhammant</groupId> 
      <artifactId>ngwebdriver</artifactId> 
      <version>0.9.6</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 
    </dependencies> 


    <profiles> 
     <profile> 
      <id>RegressionTest</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.19.1</version> 
         <configuration> 
          <suiteXmlFiles> 
           <suiteXmlFile>regression.xml</suiteXmlFile> 
          </suiteXmlFiles> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
     <profile> 
      <id>Theriaque</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.19.1</version> 
         <configuration> 
          <suiteXmlFiles> 
           <suiteXmlFile>theriaque.xml</suiteXmlFile> 
          </suiteXmlFiles> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 

</project> 

regression.xml

<suite name="IncidentDashboardSuite"> 
    <test name="Incident Dashboard Templae" preserve-order="true"> 
     <class name="com.bilog.IncidentDashboardAutomation.IncidentDashboardMainTestSuite.java"> 
     </class> 
    </test> 
</suite> 

錯誤我得到在Eclipse控制檯:

[TestNGContentHandler] [WARN] It is strongly recommended to add "<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >" at the top of your file, otherwise TestNG may fail or not work as expected. 
org.testng.TestNGException: java.lang.NullPointerException 
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:325) 
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:90) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177) 
Caused by: java.lang.NullPointerException 
    at org.testng.xml.TestNGContentHandler.endElement(TestNGContentHandler.java:722) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) 
    at javax.xml.parsers.SAXParser.parse(Unknown Source) 
    at org.testng.xml.XMLParser.parse(XMLParser.java:39) 
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16) 
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9) 
    at org.testng.xml.Parser.parse(Parser.java:172) 
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:305) 
    ... 3 more 

錯誤,我正在MVN測試PRegressionTest

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 6.584 s 
[INFO] Finished at: 2016-08-04T14:12:31+02:00 
[INFO] Final Memory: 11M/245M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project IncidentDashboardAutomation: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: There was an error in the forked process 
[ERROR] org.testng.TestNGException: java.lang.NullPointerException 
[ERROR] at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:325) 
[ERROR] at org.testng.TestNG.run(TestNG.java:1036) 
[ERROR] at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:281) 
[ERROR] at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75) 
[ERROR] at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:121) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) 
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121) 
[ERROR] Caused by: java.lang.NullPointerException 
[ERROR] at org.testng.xml.TestNGContentHandler.endElement(TestNGContentHandler.java:722) 
[ERROR] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) 
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1783) 
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2970) 
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118) 
[ERROR] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
[ERROR] at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
[ERROR] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 
[ERROR] at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643) 
[ERROR] at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327) 
[ERROR] at javax.xml.parsers.SAXParser.parse(SAXParser.java:195) 
[ERROR] at org.testng.xml.XMLParser.parse(XMLParser.java:39) 
[ERROR] at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16) 
[ERROR] at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9) 
[ERROR] at org.testng.xml.Parser.parse(Parser.java:172) 
[ERROR] at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:305) 
[ERROR] ... 7 more 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 

PS後得到:當我寫MVN測試-PRegressionTest,我得到:未知的生命週期階段 「測試PRegressionTest」

謝謝!

+0

我還建議增加一個'測試'你的POM的TestNG的依賴聲明,因爲你不希望它被確定爲傳遞依賴你做包裝的罐子。 – Hatley

回答

3

看起來你缺少TestNG配置文件中的<classes>元素。嘗試使用此爲您regression.xml文件...

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="IncidentDashboardSuite"> 
    <test name="Incident Dashboard Templae" preserve-order="true"> 
     <classes> 
      <class name="com.bilog.IncidentDashboardAutomation.IncidentDashboardMainTestSuite.java"/> 
     </classes> 
    </test> 
</suite> 
+0

@Hamza Amami - 這是否解決了您的問題?如果沒有,請讓我們知道...如果是這樣,您是否介意通過點擊綠色複選標記來接受答案?這將不勝感激任何方式=) – Hatley

相關問題