2015-06-29 17 views
5

Ho un progetto C++ che non usa Qt. Sto usando Qt Creator come IDE perché è molto conveniente.Codice C++ di test unitario (non-Qt) in Qt Creator?

Stavo leggendo di test unitari in Qt Creator here, e penso che Qt Test sembra abbastanza buono. C'è un modo per usare Qt Test con il mio progetto non-Qt C++?

Nota che nel mio PC sono installate librerie Qt che sto utilizzando per programmare. Ma non voglio che il programma compilato che rilascio dipenda dalle librerie Qt.

Inoltre, una funzionalità che mi è piaciuta quando utilizzo Visual Studio è che i test vengono eseguiti automaticamente ogni volta che creo il mio progetto. Posso fare lo stesso con Qt Creator?

A proposito, se puoi suggerire un altro framework di test unitario che posso facilmente usare in Qt Creator, va anche bene.

+1

Personalmente trovo non v'è alcun supporto per i test in Qt Creator e la documentazione ufficiale per i test più complessi con Qt è mancante. – Simon

+0

Probabilmente hai bisogno di impostare un progetto Qt per testare da solo, entrambi i file di testee di condivisione dei progetti condivisi – UmNyobe

+0

@Simon Hai qualche altro suggerimento che posso usare con Qt Creator? – becko

risposta

1

In realtà non ho mai provato a testare il codice non qt in QtCreator, ma la natura Qt del codice non ha importanza. Ecco come vorrei andare:

  1. prendere il vostro normale di progetto, non qt
  2. Aggiungere un progetto principale di tipo subdir di agire come una soluzione Visual Studio sarebbe.
  3. Aggiungi un altro progetto sotto il genitore, che è un progetto di test qt, cioè

    QT += testlib 
    CONFIG += qtestlib 
    
  4. Trovare un modo per condividere fonti tra i due. È possibile aggiungere file di origine utilizzando il relativo percorso, creare una lib statica o utilizzare un file pri (project header file) per progetti non qt e qttestlib.

Con questa configurazione, creando il progetto di livello superiore, si costruisce il progetto normale e si esegue anche il test.

con subdir progetti modelli si può avere da Ctrl +N non sono molto utili. Ma il file di progetto alto livello può essere reso il più semplice

include (commonsrc.pri) 

TEMPLATE = subdirs 
CONFIG += ordered 

SUBDIRS += appdir 
SUBDIRS += testingdir 

Questo è ciò che il livello superiore di uno dei miei progetti assomigliare.

Per evitare che i mal di testa corrispondano alla gerarchia di cartelle con gerarchia di sottodirectory. Per esempio

solutiondir 
    commondir 
    appdir 
    testingdir 
    commonsrc.pri <--- allow you to write commondir\mycpp.cpp in any project