2011-09-13 16 views
6

Sto usando primavera, TestNG, Eclipse, Maven, Mac OScasi di test TestNG non stanno compilando quando faccio progetto -> pulita

scenario è

sto facendo alcuni cambiamenti nella mia casi di test (casi di test TestNG),

poi faccio Progetto -> Clean in Eclipse

Ora sto facendo funzionare il file di test, ma le modifiche non aggiornati.

Sospetto che i file di test non siano compilati.

posso fare funzionare il server e posso correre i miei webservices

Ma se i test eseguito Maven (test mvn), l'intero codice è la compilazione compresi i casi di test.

Quindi, per eseguire i casi di test, sto eseguendo solo il comando mvn test.

Non è possibile eseguire eclissi.

Eclipse config:

Auto costruire su

In Java percorso di generazione del pacchetto di prova è incluso

Se avete bisogno di maggiori informazioni ti fornisce.

org.testng.TestNGException: 
    Cannot find class in classpath: com.***.***.model.***.case.CaseModelImplTest 
     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:512) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179) 
     at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:788) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
     at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) 
     at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) 
     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:304) 
     at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:86) 
     at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:199) 
     at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:170) 

risposta

3

I casi di test sono stati compilati, ma nella directory errata? Devono essere compilati per classi di test e non classi. Nel vostro percorso di generazione, è necessario impostare la cartella di output per essere

progetto/obiettivo/test-classi

Questo è vero per tutte le risorse di prova (incluso src/test/java & src/test/risorse).

Modificare le proprietà del progetto in Eclipse, selezionare Java Build Path, quindi nella scheda Origine, verranno visualizzate tutte le directory di origine. Ognuno ha una cartella di output. Questa cartella di output deve essere come sopra.

+0

Posso trovare questa directory (PROJECT/target/test-classes), ma all'interno non ci sono file di classe dopo Project -> clean. Ma altri file sono disponibili in PROJECT/target/classes. Mi manca la configurazione di eclissi? – Jon

+0

Aggiunta la modifica con più istruzioni. –

+1

Ho un altro progetto nello stesso spazio di lavoro. Se eseguo Maven clean e Project -> clean, i file della classe di test vengono generati nella cartella target -> test-classes. Penso che il problema con quella configurazione di progetto specifico. – Jon

0

è la cartella di test aggiunta come cartella di origine in Eclipse? Se non lo è, non sarà incluso nella build.

+0

Sì @Ross aggiunto. – Jon

4

Sembra che non sia stata inclusa la classe del test case nel percorso di costruzione. Fai clic destro sulla cartella del progetto, vai al progetto properties-> src
includi la cartella src di Testcase controllandola.
Ora dovrebbe essere eseguito.

0

Ho risolto questo da:

  1. Modifica del percorso di generazione/sopprimendo alcuni di quelli sbagliati
  2. Pulizia progetto
2

Vai Project --> Clean

che ha funzionato per me con problema simile

1

Controllare il file testNG.xml per il test corretto perché ho ricevuto lo stesso errore ed è stato perché è stato immesso il nome del test errato.

+0

Benvenuti in StackOverflow! Ciò non fornisce una BUONA risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post e, una volta che hai una reputazione sufficiente, potrai commentare qualsiasi post. Si prega di leggere le linee guida per le buone risposte: http://stackoverflow.com/questions/how-to-answer. – bitoiu

4

Apre la vista Problemi. In Eclipse vai su Finestra-> Mostra vista-> Problemi. Elencherà tutti gli errori durante la compilazione del codice.

+0

Ho davvero aiutato a risolvere il mio problema. la mia scheda tecnica excel era aperta e la compilazione non andava a buon fine da quando il file è aperto. –

0

Penso po 'di tempo si ottiene questo errore se la classe di test è in pacchetto di default e in Testng.xml, si specifica come qui sotto -

<suite name="Suite" parallel="none"> 
<listeners> 
    <listener class-name="org.uncommons.reportng.HTMLReporter" /> 
    <listener class-name="org.uncommons.reportng.JUnitXMLReporter" /> 
</listeners> 
<test name="Test"> 
    <classes> 
     <class name=".Test1" /> 
    </classes> 
</test> <!-- Test --> 

Qui sopra, ho spostato la mia TestClass dal pacchetto predefinito a qualche pacchetto e anche testng.xml aggiornato come sotto - e tutto ha iniziato a funzionare.

<suite name="Suite" parallel="none"> 
<listeners> 
    <listener class-name="org.uncommons.reportng.HTMLReporter" /> 
    <listener class-name="org.uncommons.reportng.JUnitXMLReporter" /> 
</listeners> 
<test name="Test"> 
    <classes> 
     <class name="com.sigma.rest.api.Test1" /> 
    </classes> 
</test> <!-- Test --> 

Spero che questo ti aiuta ... se problema esiste ancora, tenta opzioni di cui sopra.

grazie!

0

controllare se il vostro artefatti di progetto come Excel, file di proprietà, i file XML ecc sono aperti in editor di testo, ecc (se sì, si prega di chiuderle e non ricostruire)

Quando pulita e ricostruire assicurarsi che tutti i file dipendenti di progetto sono chiusi e tu costruisci.

Problemi correlati