2011-09-18 30 views
8

Sto per avviare un progetto C++ ma sono bloccato alle basi.Beginning Code :: blocks e UnitTest ++

Desidero utilizzare l'ID (Blocchi) Code :: Blocks IDE ed è facile creare un progetto normale. Comunque voglio fare TDD usando il framework UnitTest ++, e non so come impostare tutto in modo pulito.

Ho già chiesto a question dove mettere il comando UnitTest::RunAllTests() e mi hanno detto che il posto migliore è lo main() di un programma separato.

Come faccio a fare questo in Code :: Blocks? Penso di aver bisogno di creare 2 progetti:

  • Il progetto "reale" con il proprio main();
  • Il progetto di test unitario contenente i test e lo main() con UnitTest::RunAllTests() all'interno.

Quindi, in qualche modo, il primo progetto viene creato ed eseguito il secondo durante il processo di creazione. Non so ancora come farlo, ma posso scoprirlo da solo.

Le mie domande sono:

  1. questo è il metodo giusto?
  2. devo creare anche un progetto per il framework UnitTest ++, per permettere ad altre persone di costruirlo su altre piattaforme? O è sufficiente abbandonare la libreria conforme nel percorso del progetto?
  3. come posso organizzare le directory di questi progetti insieme? Sarebbe bello mettere i test relativi a ciascun pacchetto nella stessa directory di quel pacchetto, ma è ok avere più progetti nello stesso albero delle directory?
+0

Buona scelta su UnitTest ++ –

risposta

4

In parte rispondo alle mie domande, poiché sono riuscito a far funzionare tutto.

  1. Seguendo le istruzioni sul official documentation page, ho messo la cartella unittest ++ con la libreria compilata e tutti i file di origine nel percorso del mio progetto.
  2. Quindi ho creato un progetto di test per tutti i test dell'unità, con una funzione principale contenente il famoso UnitTest::RunAllTests(). Ho inserito $exe_output come processo post-compilazione qui, in modo che i test vengano eseguiti automaticamente ogni volta che costruisco questo progetto.
  3. Ho creato il progetto "reale" in cui andrà il mio codice da testare. Nelle impostazioni di costruzione ho specificato il progetto di test come una dipendenza del progetto reale, in modo che ogni volta che costruisco quello reale, crea anche il progetto di test per primo.

Con queste impostazioni posso lavorare sui miei test e sul codice reale, e devo solo costruire quello reale per eseguire i test aggiornati. Qualsiasi test non funzionante farà fallire anche la build.

Ora rimangono due domande: "è questo l'approccio migliore?" e "in questo momento ogni progetto vive in una directory diversa. È più saggio lasciarlo in questo modo o dovrei inserire ogni test nella stessa cartella del codice reale da testare?"

Problemi correlati