2010-03-18 20 views
5

Usiamo JUnit - Selenium per i nostri test web. Usiamo Maven per avviarli e creare un rapporto infallibile.Maven - Selenio - Possibile eseguire un solo test

La suite di test è abbastanza grande e richiede un po 'di tempo per essere eseguita e talvolta i singoli test falliscono perché il browser non si avvia. Voglio essere in grado di eseguire un test SINGLE usando Maven, così ripasso i test che falliscono e aggiorno il report.

Posso usare mvn test -Dtest=TESTCLASSNAME per eseguire tutti i test in una classe di test, ma questo non è abbastanza buono poiché ci vogliono circa 10 minuti per eseguire tutti i test nelle nostre classi di test più complicate ed è molto probabile che qualche altro test possa fallire (perché il browser non si avvia) e questo rovinerà la mia segnalazione.

So che posso eseguire un test da Eclipse ma non è quello che sto cercando.

Qualsiasi aiuto su questo sarebbe molto appriciated

risposta

2

del c_maker descrive i punti principali - si dovrebbe davvero prendere in considerazione rompendo i grandi casi di test in quelle multiple. Raccomando TestNG o JUnit4 per i test del selenio in modo da poter gestire facilmente l'impostazione prima dell'intera suite, eventuali dipendenze del test e così via. In TestNG, è inoltre possibile utilizzare uno group per classificare i test in modo che vengano eseguiti in modo selettivo in modo da non doverli impostare per ignorarli quando si desidera eseguire una determinata classe di test.

3
  1. si può avere una classe genitore con configurazione comune e una classe figlia per ogni testcase, in questo modo è possibile utilizzare il test mvn -Dtest = TESTCLASSNAME di eseguire un prova singola

  2. Se si utilizza junit4, è possibile annotare i metodi che si desidera ignorare per il momento con @ Ignora.

  3. Se non si dispone di onSetup() e onTeardown() che devono essere eseguiti per ogni testcase, è possibile rendere privati ​​i metodi di test e disporre di una sola testcase che chiami gli altri. In questo modo è facile commentarli secondo necessità. risposta

0

Se si utilizza il Maven Surefire Plugin, si può eseguire questo:

mvn -Dtest=TestCircle#mytest test 

dove TestCircle è la classe di test, e mytest è il nome del metodo di prova.

non direttamente collegate, ma se si utilizza cetriolo di eseguire scenari, si può eseguire un singolo scenario in un unico file funzione in questo modo:

mvn -P selenium,chrome -Dcucumber.options="classpath:com/my/package/myfeature.feature:47" clean verify 

dove la linea 47 è l'inizio dello scenario che si desidera eseguire e "chrome" è il profilo del browser di prova.

Problemi correlati