2016-09-26 5 views
1

그래서 NetBeans 8.1은 우분투 14.04에서 실행됩니다. 기존 프로젝트에는 googletest뿐만 아니라 CMakeLists 파일도 있습니다. 나는 그것을 세우려고 노력하고있다. 그래서 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 생성"- 성공합니다. 그때 바로 메이크 파일을 클릭하고 대상 하위 메뉴를 확인하기 위해 갈 때, 나는 몇 가지 목표를 선택할 수 있습니다

  • 모든
  • 깨끗한
  • 도움
  • 빌드 - 테스트
  • 테스트를

예를 선택할 때. "빌드 테스트는"대상 - (이 대상이 비어로, 예상되는) 아무 반응이 없습니다 :

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'명령으로갑니다. 그리고 여기에 문제가 나타납니다 : 출력 창에 새 탭이 추가됩니다. 이름은 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 대상을 빌드합니다. 이것은 어쨌든 통합 된 것 같습니다. 한 가지 시도해 볼 수있는 것은이 기본 대상에서 개체/대상을 제외하는 것입니다.

다른 방법 : 테스트를 실행하는 데 필요한 부분 만 빌드하는 옵션 (예 : BUILD_TESTS_ONLY)을 추가하십시오. 이 옵션은 기본적으로 해제되어있어 다른 빌드를 손상시키지 않습니다.