2011-03-28 3 views

risposta

6

TheStijn fornisce alcune indicazioni, sebbene TestMethodWorker() sia interno, quindi non è necessario utilizzarlo.

In base alla domanda, io non sono nemmeno sicuro il manifesto originale sta cercando di lanciare TestNG in un processo separato, quindi la documentazione delle API potrebbe essere quello che stai cercando:

http://testng.org/doc/documentation-main.html#running-testng-programmatically

+0

Il mio codice seguente funziona bene: TestListenerAdapter tla = new TestListenerAdapter(); TestNG testng = new TestNG(); testng.setTestClasses (new Class [] {LoginAuthentication.class}); testng.addListener (tla); testng.run(); com.beust.testng.TestNG; TestNG è deprecato. C'è un modo alternativo? –

+0

Utilizza org.testng.TestNG invece di com.beust.TestNG –

+0

puoi seguire anche questo blog http://dharshanaw.blogspot.com/2012/10/how-to-execute-testng-tests.html – Dharshana

0

Date un'occhiata a org.testng.remote.RemoteTestNG, questo sarà comunque avete bisogno di scrivere una suite XML per i test come:

<suite name="Default suite"> 
    <test verbose="2" name="Default test"> 
    <classes> 
     <class name="com...service.UserServiceImplTest"/> 
    </classes> 
    </test> 
</suite> 

Un altro punto di ingresso potrebbe essere nuova org.testng.internal. TestMethodWorker (...). Run() ma dovrai guardare il codice per determinare gli argomenti del costruttore che devi impostare.

Forse altri, più convenienti punti di ingresso sono disponibili a seconda delle esigenze; Suggerisco di avviare alcuni test in modalità di debug, inserire un punto di interruzione nel test e andare giù nello stack.

+0

Sì, questo è il contenuto del file xml. Quindi, il file build.xml viene eseguito utilizzando eclipse o Ant –

8

la mia seguente codice in Java funziona bene:

@Test 
public void testTestNGProgramatically(){ 
TestListenerAdapter tla = new TestListenerAdapter(); 
TestNG testng = new TestNG(); 
testng.setTestClasses(new Class[] {LoginAuthentication.class, GmailSigninSignout.class}); 
testng.addListener(tla); 
testng.run(); 
} 

È possibile ottenere i dettagli spiegazione visitando il seguente URL:

http://testng.org/doc/documentation-main.html#running-testng-programmatically

+0

Nel mio codice precedente: TestNG è deprecato nella riga "TestNG testng = new TestNG();" . Qual è l'alternativa della classe TestNG? –

+2

Usa 'org.testng.TestNG', non' com.beust.TestNG' (quello che stai probabilmente importando). –

+0

@CedricBeust: Grazie mille. Sì, ho importato org.testng.TestNG invece di com.beust.TestNG e OK ora –