2012-10-09 55 views
0

我有兩個模塊都有那裏各自pom.xmls,我想運行模塊1的pom.xml和使用它運行一些代碼模塊2通過使用類名在testng中運行。 XML。 現在,這從來沒有工作,我得到一個ClassNotFoundException。 請幫忙。自動化測試問題testng異常

Cannot find class in classpath: com.org.Console1 
    at org.testng.xml.XmlClass.loadClass(XmlClass.java:76) 
    at org.testng.xml.XmlClass.init(XmlClass.java:68) 
    at org.testng.xml.XmlClass.<init>(XmlClass.java:54) 
    at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:516) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1322) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:195) 
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17) 
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10) 
    at org.testng.xml.Parser.parse(Parser.java:170) 
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:299) 
    at org.testng.TestNG.run(TestNG.java:972) 
    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:122) 
    at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:88) 
    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:104) 

這是我的testng.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><suite allow-return-values="false" configfailurepolicy="skip" data-provider-thread-count="10" group-by-instances="false" junit="false" name="Suite" parallel="false" preserve-order="true" skipfailedinvocationcounts="false" thread-count="5"> 
<test allow-return-values="false" group-by-instances="false" junit="false" name="Test" preserve-order="true" skipfailedinvocationcounts="false"> 
    <classes> 
    <class name="com.org.Console1"> 
    </class> 

    </classes> 
</test> <!-- Test --> 

這是我的pom.xml

<plugin> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.8</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 


      <executions> 
       <execution> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 

       </execution> 
      </executions> 
     </plugin> 
+0

我認爲你將不得不提供一些信息。這兩個模塊之間有什麼關係?顯示pom文件以及'testng.xml'。 – maba

+0

仍然沒有看到問題。你能告訴我們更多關於這兩個模塊如何交互的信息。 – maba

回答

0

你並不需要指定一個套件只是測試。必須配置surefire-plugin來捕獲所有的java類,默認是查找「* Test.java」,我個人不喜歡這種行爲。

POM - 摘錄:

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.12.4</version> 
       <configuration> 
        <includes> 
         <include>**/*.java</include><!-- dont just run *Test.java-files, which is default for surefire --> 
        </includes> 
       </configuration> 
      </plugin> 

此外,請確認您的測試類是在正確的位置:

的src/main/測試 /com/org/Console1.java

它必須在那裏,除非你想配置它(我不推薦)