2016-09-26 6 views
1

私はNetBeans 8.1をubuntu 14.04で実行しています。私はCMakeListsファイルとgoogletestを使用して既存のプロジェクトを持っています。私はそれを設定しrunnigしようとしています。そこで、NBCndUnitをインストールして、ここにある指示に従ってください:https://github.com/offa/NBCndUnit/wiki/Using-existing-projects#a-workaround-for-cmake。 は、ここに私のプロジェクト/ CMakeListsファイルの一部です:netbeans guiのC++ googletestテストを実行します

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

を、ここで私のて、myApp /テストCMakeListsファイルの一部です:

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) 

私は右のメインプロジェクトCMakeLists.txtファイルをクリックすると、選択したとき"makefileを生成する" - 成功する。私は右のMakefileをクリックして、ターゲットのサブメニューを作るために行くとき、私はいくつかのターゲットを選択することができます。

  • すべて
  • クリーン
  • ヘルプ
  • ビルドテスト
  • テストを

私は、例えば、を選択します。 「ビルド・テスト」は、標的 - (このターゲットが空であるとして、期待されている)何も起こりません:

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

私が選択した場合、「テスト」の目標 - それが構築され、実行されます(コンソールウィンドウに出力)

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) 

しかし、Netbeans TestResultsウィンドウペインでテスト結果を確認したいと思います。ですから、私はメニューの 'Run' - > 'Test project'コマンドに行きます。そして、ここに問題が表示されます:Outputペインに新しいタブが追加され、myAppという名前です(ビルド、テストの作成...)。そして、プロジェクト全体を構築しようとします:

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

問題は、依存関係のためにプロジェクト全体がまだ構築できないということです。必要なことはすべてmyAppTestで嘲笑されます(テスト自体は実行可能です - 例えば、makefileコンテキストメニューから "test"ターゲットをビルドすることによって)。実際の質問は です。実際のテストを実行して実行する前に、何らかの形でプロジェクト全体をスキップすることはできますか?

答えて

1

よく、私は部分的に私の問題をなだめることができました。 NBはデフォルトallターゲットの代わりにそれを構築しますので、私は単にいくつかの偽のビルドターゲット(build_tests)を加え enter image description here

:私は、やったことは、カスタムプロジェクトのプロパティの設定スキームを追加することです。ハッキーの種類は、私が必要とするものです。

1

実際にテストを実行する前にプロジェクト全体をスキップすることはできますか?

Netbeansはデフォルトでallターゲットをビルドします。これは何とか統合されているようです。 1つは、このデフォルトのターゲットからオブジェクト/ターゲットを除外しようとすると思います。

別の方法:テストを実行するために必要な部分だけを構築するオプション(たとえば、BUILD_TESTS_ONLY)を追加します。このオプションは、デフォルトではオフにすることができるため、他のビルドを破損することはありません。

関連する問題