2017-03-17 1 views
1

Aus irgendeinem Grund kann ich nicht gtest Tests von der Kommandozeile starten, so kann ich keine Argumente zu ihm übergeben. Ich möchte InitGoogleTest bereits mit einem im Code definierten Parameter ausführen. Irgendwo im Internet fand ich eine Lösung wie folgt aus:So erzwingen gtest schreiben Bericht zu xml von Init

int main(int argc, char **argv) { 
char *option[] = { "test.exe", //it doesn't have meaning, just dummy 
        "--gtest_output=xml:filename" }; 
int argc1 = 2; 
    ::testing::InitGoogleTest(&argc1, option); 
    return RUN_ALL_TESTS(); 
} 

Diese Lösung keine Fehler produzieren hat, sondern schaffen es noch keine xml mit Bericht entweder. Kann jemand vorschlagen, gtest zu zwingen, XML von Init zu schreiben?

Antwort

0

können Sie die output Flagge überschreiben, indem

::testing::GTEST_FLAG(output) = "xml:filename"; 

vor der Aufruf an InitGoogleTest hinzufügen. Sie können mehr darüber bei Google Test docs lesen.

+0

Ich habe eine Funktion wie diese 'int main (int argc, char ** argv) { :: Test :: InitGoogleTest (& argc, argv) gemacht; :: testing :: GTEST_FLAG (Ausgabe) = "xml: /home/user/test.xml"; zurückgeben RUN_ALL_TESTS(); } ' Aber test.xml wurde nicht erstellt, vielleicht mache ich etwas falsch? – Semant1ka

+0

Ah, mein Fehler - Sie müssen die Markierung vor dem 'InitGoogleTest'-Aufruf setzen. Der XML-Listener ist in dieser Funktion eingerichtet. – VladLosev

Verwandte Themen