Nel processo di creazione del nostro ++ framework di test unità C per i prossimi anni nella rosa dei candidati GoogleTest e CppUnit. Ho una certa esperienza con entrambi e la mia preferenza principale è GoogleTest. Comunque per convincere il mio capo ho bisogno di alcuni dati quindi ho fatto qualche lettura su Internet, inclusi i manuali, le pagine wiki e alcune delle fonti. Ho trovato un elenco dei vantaggi di GoogleTest e un vantaggio CppUnit (test runner grafici). Qui si sono ordinate per percepito utilità:GoogleTest vs CppUnit: I fatti
- INSTANTIATE_TEST_CASE_P di creare un'istanza di un banco di prova con qualsiasi insieme di parametri che si desidera, compresi i prodotti cartesiani
- FRIEND_TEST per testare i membri della classe private (per tutto il codice legacy)
- svolta afferma in punti di interruzione
- non fatali afferma
- "out of the box" integrazione googlemock
- automatico ic test di rivelazione, non c'è bisogno di enumerare loro
- test possono essere disattivati e attivati
- test da eseguire possono essere selezionati tramite modelli di nomi
- valore/prove di parametri
- predicato definito dall'utente afferma
- la morte mette alla prova
- molto più ricca serie di asserisce
- tipo afferma
- affermando sul subroutine
- ulteriore informazioni di debug può essere aggiunto a asserisce utilizzando < <
- RecordProperty emette ultimo valore della proprietà per l'output XML
- SCOPED_TRACE aiuta a comprendere il contesto di un errore di asserzione proveniente dall'interno di un sub-routine o loop.
- xUnit output XML, può essere mostrato da Jenkins subito senza una trasformazione XSLT tra
- supporta stampanti tipi personalizzati
- tempo consumato dalla indicazione di prova (ho il sospetto questo è possibile anche con CppUnit ma mi rifugio figured it out ancora)
- prova evento ascoltatore API (plug-in definiti dall'utente)
- prova mischiare
- senza eccezioni e RTTI
A m Ho ragione nel ritenere che tutto quanto sopra non sia supportato da CppUnit? Esiste una funzione GoogleTest utile non disponibile in CppUnit che mi manca?
E, ultimo ma non meno importante: ci sono alcune caratteristiche CppUnit che GoogleTest manca?
Grazie!
Alcune delle risposte a [Confronto di C++ framework di unit test] (http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks) affrontano specificamente le caratteristiche GoogleTest. –
Un paio di anni fa stavo facendo un sondaggio simile, GoogleTest non era nei paraggi. Ho optato per CXXTest che disponeva di un meccanismo per enumerare i casi di test mediante un passo di pre-analisi con Perl. Questo è stato di gran lunga superiore a CppTest. Detto questo, non so nulla su GoogleTest. –
Un corridore di test grafico è un vantaggio? Di solito vuoi qualcosa che può essere automatizzato facilmente, perché l'automazione ti consente di ottenere feedback di prova più facilmente e più spesso. –