Domanda

Utilizziamo JUnit - Selenium per i nostri test web.Usiamo Maven per avviarli e creare un rapporto infallibile.

La suite di test è piuttosto 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 SINGOLO test utilizzando Maven, quindi riprovo i test che falliscono e aggiorno il rapporto.

posso usare mvn test -Dtest=TESTCLASSNAME per eseguire tutti i test in una classe di test, ma questo non è sufficiente 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 fallisca (perché il browser non si avvia) e questo rovinerebbe il mio rapporto.

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

Qualsiasi aiuto su questo sarebbe molto apprezzato

È stato utile?

Soluzione

La risposta di c_maker descrive i punti principali - si dovrebbe davvero prendere in considerazione rompendo i grandi casi di test in quelle multiple. Vi consiglio TestNG o JUnit4 per test Selenium in modo che è possibile gestire facilmente il set up davanti a tutta la suite, eventuali dipendenze di prova, e così via. In TestNG, è anche possibile utilizzare un group per classificare le prove per eseguire in modo selettivo in modo che non è necessario impostarle da ignorare quando si desidera eseguire una particolare classe di test.

Altri suggerimenti

  1. Puoi avere una classe genitore con un'impostazione comune e una classe figlia per ogni testcase, in questo modo puoi utilizzare mvn test -Dtest=TESTCLASSNAME per eseguire un singolo test.

  2. Se stai utilizzando junit4, puoi annotare i metodi che desideri ignorare per il momento con @Ignore.

  3. Se non hai onSetup() e onTeardown() da eseguire per ogni testcase, puoi rendere privati ​​i tuoi metodi di test e avere un solo testcase che chiami gli altri.In questo modo è facile commentarli secondo necessità.

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

mvn -Dtest=TestCircle#mytest test

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

che non riguardano direttamente, 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 "cromo" è il vostro profilo del browser di test.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top