TestNG è un potente framework di test che consente agli sviluppatori di scrivere test flessibili con funzioni di raggruppamento, sequenziamento e data-driven; rende anche la scrittura di test paralleli facile. E la caratteristica più potente, a mio avviso, è un insieme di ascoltatori che si aggancia a TestNG, che consente di controllare meglio i casi di test, o aumentare la segnalazione, ecc.
Il plugin TestNG Eclipse ti dà la possibilità di eseguire ed eseguire il debug di casi di test TestNG all’interno di Eclipse IDE.
Questo articolo condivide alcuni suggerimenti su come essere efficienti durante la creazione e l’esecuzione di test con TestNG Eclipse Plugin.
Installazione
TestNG per Eclipse Plugin è disponibile su Eclipse Marketplace, si prega di seguire la guida all’installazione.
Usa TestNG Eclipse Plugin
Authoring Tests
Quando stai creando i casi di test TestNG, i modelli predefiniti possono sicuramente aiutarti a essere più efficienti. Per creare un metodo di test, nell’editor, digitare test
, quindi premere il tasto di scelta rapida Content Assist (‘Alt + /’ nel mio caso), selezionare il modello come di seguito:
Nota: Ci saranno più modelli disponibili in TestNG Eclipse Plugin 6.10.1, ad esempio ‘setup’, ‘teardown’, ecc.
Esegui / Debug Test
Lauching Test
Esistono diversi modi per avviare i test, il che è molto utile. Ecco i diversi modi in cui può essere fatto:
- Facendo clic con il pulsante destro del mouse sulla classe di test o sull’editor di origine, per eseguire quel test.
- Facendo clic destro sul pacchetto, per eseguire tutti i test sotto il pacchetto.
- Facendo clic con il pulsante destro del mouse sul file xml di TestNG suite, per eseguire la suite di test personalizzata.
- Oppure, vai a Esegui configurazione per un migliore controllo sulla configurazione di avvio, ad esempio, il gruppo di test da eseguire; passare le proprietà del sistema al processo di test di runtime, ecc.
Esegui nuovamente i test falliti
Se hai più test falliti, dopo aver corretto il codice di test, puoi rieseguire del tutto i test falliti per risparmiare tempo:
Maven Integration
Se il tuo progetto è gestito da Maven, potresti voler configurare maven-surefire-plugin
o maven-failsafe-plugin
per eseguire il test case. Supponiamo che tu passi i seguenti argomenti JVM e proprietà di sistema al processo di test runtime:
<artifactId>maven-surefire-plugin</artifactId><configuration> <suiteXmlFiles> <suiteXmlFile>test-suite/testng.xml</suiteXmlFile> </suiteXmlFiles> <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar -Xmx1024m -XX:MaxPermSize=512m -Xms256m -Xmx1024m -XX:PermSize=128m -Dversion=${project.version} </argLine> <systemPropertyVariables> <foo>${foo.value}</foo> </systemPropertyVariables> <environmentVariables> <bar>${bar.value}</bar> </environmentVariables></configuration>
I test funzionano bene con Maven cli, mvn -e test
, ma potrebbero fallire con qualsiasi versione del plugin TestNG Eclipse prima della 6.9.10. In tal caso, è necessario copiare manualmente le proprietà del sistema per avviare la configurazione per ogni test.
Fortunatamente, oggi, il plugin TestNG Eclipse può analizzare la configurazione di maven-surefire/failsafe-plugin
, aggiungerli automaticamente alla configurazione di avvio. In questo modo, rende anche il comportamento il più vicino possibile all’esecuzione sulla riga di comando. Per maggiori dettagli, si prega di fare riferimento alla guida ufficiale.
Nota: La funzionalità equivalente per l’integrazione di Gradle con Eclipse Buildship è in fase di pianificazione, puoi tracciare il ticket qui.
TestNG Eclipse Plugin Internal
È utile comprendere il nucleo del plug-in TestNG Eclipse, specialmente quando si hanno problemi ad usarlo.
Quando un test è in esecuzione, il plugin deve ottenere i risultati del test dal processo di test di runtime e visualizzarli sulla vista in tempo reale.
La comunicazione tra il plugin e il processo di test runtime avviene tramite socket. Il plugin avvia prima il server socket. Mentre è sul processo di test di runtime, ci sono una serie di ascoltatori che si agganciano al runtime TestNG e inviano i risultati del test al plugin tramite socket.
Le funzionalità di comunicazione socket sono mantenute nel progetto ‘testng-remote’ su GitHub.
Parole finali
Continuiamo a migliorare l’esperienza del plugin TestNG Eclipse, si prega di inviare i vostri commenti e idee sul progetto GitHub qui.
Circa l’Autore
Nick Tan
Ebates
- GitHub