2012-10-09 2 views
0

둘 다 각각의 pom.xml을 가지고있는 두 개의 모듈이 있는데, 나는 module1의 pom.xml을 실행하고 testng에서 실행할 클래스 이름을 사용하여 module2의 일부 코드를 실행하려고합니다. xml. 이것은 결코 작동하지 않으며 ClassNotFoundException을 얻습니다. 친절히 도와주세요. 자동화 된 테스트 문제 테스트 예외

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"를 찾는 것입니다. 개인적으로이 동작을 좋아하지 않습니다.

치어 조각 :

<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/메인/테스트 /com/org/Console1.java

구성을 원하지 않는 한 거기에 있어야합니다 (권장하지 않음)