Unit Testing in QTestLib - in esecuzione singoli test / prove in classe / tutti i test

StackOverflow https://stackoverflow.com/questions/2686326

  •  30-09-2019
  •  | 
  •  

Domanda

Sto solo cominciando a usare QTestLib. Ho passato con il rel="noreferrer"> esercitazione . Anche se capisco come creare test, sto solo non ottenere come fare quei test pratico per l'esecuzione. La mia unità di prova di fondo è NUnit e MSTest. In quegli ambienti, è stato banale (utilizzando una GUI, almeno) per alternare tra l'esecuzione di un singolo test, o tutti i test in un'unica classe di test, o tutti i test in tutto il progetto, semplicemente facendo clic con il tasto destro.

Tutto quello che sto vedendo in QTestLib è o si utilizza la macro QTEST_MAIN per eseguire i test in una singola classe, quindi compilare e testare ogni file separatamente; o l'uso QTest::qExec() in main() per definire gli oggetti da testare, e quindi modificare manualmente questo e ricompilazione quando si desidera aggiungere / rimuovere le classi di test.

Sono sicuro che mi manca qualcosa. Mi piacerebbe essere in grado di facilità:

  • Esegui un unico metodo di test
  • Esegui i test di un'intera classe
  • eseguire tutti i test

Una di queste sarebbe chiamare le funzioni appropriate setup / teardown.

Modifica Bounty ora disponibile. Ci deve essere un modo migliore, o un test corridore GUI che gestisce per voi o qualcosa del genere. Se si utilizza QtTest in un ambiente di test-driven, fatemi sapere cosa sta lavorando per voi. (Script, corridori di test, ecc.)

È stato utile?

Soluzione

È possibile eseguire i test solo selezionati (metodi di prova) passando i nomi di test come argomenti della riga di comando :

myTests.exe myCaseOne myCaseTwo

Verrà eseguito tutti i INIT / ripuliture troppo. Purtroppo non v'è alcun supporto per i caratteri jolly / pattern matching, in modo da eseguire tutti i casi che iniziano con data stringa (presumo che è quello che si intende per "eseguire i test in un'intera classe"), dovreste creare script (finestre lotto / bash / perl / altro) che le chiamate:

myTests.exe -functions

analizza i risultati e corre test selezionati utilizzando prima sintassi.

Per eseguire tutti i casi, solo che non passa alcun parametro:

myTests.exe

Altri suggerimenti

I tre caratteristiche richieste dal PO, sono al giorno d'oggi integrato alla Qt Creator .

Il progetto sarà sottoposto a scansione automatica per le prove e apear nel riquadro di prova. In basso a sinistra nella schermata:

Qt Creator screenshot

Ogni prova e dati corrispondenti può essere attivata selezionando la casella. Il menu contestuale permette di eseguire tutti i test, tutti i test di una classe, solo il selezionati o solo test. Come richiesto.

I risultati del test saranno disponibili dal Qt Creator troppo. Un indicatore di colore mostrerà pass / fail per ogni prova, insieme informazioni aggiuntive come i messaggi di debug.

In combinazione con il Qt Creator, l'utilizzo della macro QTEST_MAIN per ogni test funzionerà bene, come ogni eseguibile compilato viene richiamato dal Qt Creator automaticamente.

Per una panoramica più dettagliata, consultare la sezione Autotest di Running il Qt Creator manuale.

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