2011-09-16 11 views
18

Sono nuovo nel framework C++ di google test. È abbastanza facile da usare, ma mi chiedo come separare i casi in più file di test. Qual è il modo migliore?Casi di test separati su più file nel test di google

Includi direttamente i file .cpp è un'opzione. Utilizzando un colpo di testa sembra che non fa nulla ...

Ogni aiuto è benvenuto

risposta

25

Creare un file che contiene solo il principale per eseguire i test.

// AllTests.cpp 
#include "gtest/gtest.h" 

int main(int argc, char **argv) 
{ 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

Quindi inserire i test in altri file. Puoi mettere tutti i test che vuoi in un file. La creazione di un file per classe o per file sorgente può funzionare bene.

// SubtractTest.cpp 
#include "subtract.h" 
#include "gtest/gtest.h" 

TEST(SubtractTest, SubtractTwoNumbers) 
{ 
    EXPECT_EQ(5, subtract(6, 1)); 
} 

Ciò richiede che tutti i test possano condividere lo stesso main. Se devi fare qualcosa di speciale lì, dovrai avere più obiettivi di build.

+0

Funziona bene! Grazie! – Killrazor

+0

Se stai lavorando con google-test in Xcode (eventualmente anche con Objective-C++) e i test non vengono eseguiti dopo aver diviso la tua suite di test in diversi file '.cpp', vai al tuo target C++ con google-test in Xcode e attiva 'Esegui prelink di oggetto singolo' nelle opzioni di compilazione. – bithavoc

+0

Non funziona per me. Quando si esegue l'eseguibile Alltrest SubtractTest non viene richiamato. SubtractTest.cpp viene creato come eseguibile o libreria? – user3667089

Problemi correlati