2012-10-09 53 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

它必须在那里,除非你想配置它(我不推荐)