2016-09-26 1 views
1

So habe ich NetBeans 8.1 läuft auf Ubuntu 14.04. Ich habe ein bestehendes Projekt mit CMakeLists Dateien sowie googletest. Ich versuche es einzurichten und runnig. So installierte ich die NBCndUnit und folgte dann den hier gefundenen Anweisungen: https://github.com/offa/NBCndUnit/wiki/Using-existing-projects#a-workaround-for-cmake. hier ist ein Teil meines Projekts/CMakeLists Datei:netbeans C++ googletest führen Tests von gui

cmake_policy(SET CMP0037 OLD) 
add_custom_target(build-tests COMMENT "starting build-tests target") 
add_custom_target(test myAppTest COMMENT "starting test target") 

und hier ist der Teil meiner myApp/Test CMakeLists Datei:

add_executable(myAppTest ${SOURCES} ${HEADERS}) 

target_link_libraries(myAppTest 
    -L${GTEST_LIBRARY_DIR} 
    -L${GMOCK_LIBRARY_DIR} 
    myApp 
    gtest 
    gmock 
    # other dependencies 
) 

add_test(myAppTest myAppTest) 

wenn ich auf rechts auf der Haupt CMakeLists.txt Datei Projekt und wählen "make makefile" - es gelingt. Als ich dann rechts auf dem Makefile klicken und gehen Ziel Untermenü zu machen, kann ich mehrere Ziele wählen:

  • alle
  • sauber
  • Hilfe
  • Build-Tests
  • Test

Wenn ich dann zB wähle. "Build-Tests" target - nichts passiert (was zu erwarten ist, wie dieses Ziel leer ist):

cd '(some project path)/cmake_build' 
/usr/bin/make -f Makefile build-tests 
Built target build-tests 

Wenn ich wähle "test" Ziel - es wird gebaut und ausgeführt (Ausgabe im Konsolenfenster)

cd '(path to project)/cmake_build' 
/usr/bin/make -f Makefile test 
[ 34%] Built target dependency1 
[ 54%] Built target dependency2 
[ 82%] Built target dependency3 
[ 88%] Built target dependency4 
[ 97%] Built target dependency5 
[100%] starting test target 
[==========] Running 111 tests from 7 test cases. 
[----------] Global test environment set-up. 
[----------] 1 test from Foo 
[ RUN  ] Foo.Bar 
[  OK ] Foo.Bar (0 ms) 
[----------] 1 test from Foo (0 ms total) 
(rest of gtest output) 

Aber ich möchte die Testergebnisse in Netbeans TestResults Fenster sehen. Ich gehe also zum Menü 'Ausführen' -> 'Testprojekt'. Und hier erscheint ein Problem: Im Ausgabebereich wird eine neue Registerkarte mit dem Titel myApp (Build, Build Tests ...) hinzugefügt. Und er versucht, das ganze Projekt zu bauen:

cd '(project path)/cmake_build' 
/usr/bin/make -j4 -f Makefile 

das Problem ist, dass das gesamte Projekt noch nicht baubar ist, aufgrund Abhängigkeiten. Alles, was notwendig ist, wird im myAppTest gespottet (und der Test selbst ist lauffähig - z. B. durch Erstellen des "Test" -Ziels aus dem Makefile-Kontextmenü). Die eigentliche Frage ist also: Kann ich irgendwie das ganze Projekt überspringen, bevor ich die eigentlichen Tests mache?

Antwort

1

Nun, ich war teilweise in der Lage, mein Problem zu lösen. was ich getan habe, ist, um benutzerdefinierte Projekteigenschaften Konfigurationsschema hinzufügen: enter image description here

ich einfach einige gefälschte Build-Ziel (build_tests) hinzugefügt, so NB es anstelle der Zielstandard all aufbaut. Art von Hacky, aber tut was ich brauche.

1

Kann ich das ganze Projekt überspringen, bevor ich die eigentlichen Tests durchführe?

Netbeans erstellt standardmäßig all Ziele. Das ist irgendwie integriert, denke ich. Sie können versuchen, die Objekte/Ziele von diesem Standardziel auszuschließen.

Ein anderer Weg zu gehen: Fügen Sie eine Option hinzu, die (z. B. BUILD_TESTS_ONLY) die nur die Teile baut, die benötigt werden, um die Tests auszuführen. Diese Option kann standardmäßig deaktiviert sein, sodass keine anderen Builds unterbrochen werden.

Verwandte Themen