2012-06-06 2 views
2

우리는 C++ 애플리케이션 인 exe를 가지고 있습니다. 여기에는 몇 가지 테스트 케이스가 있으며이 테스트 케이스는 Google Test 프레임 워크를 사용하여 작성되고 성공적으로 실행됩니다.C++ Google 테스트 프레임 워크 (쉘 스크립트)

하지만이 exe는 내부적으로 ( 코드 내에서) 모든 Google 테스트 옵션을 처리하므로 명령 프롬프트에서 Google 테스트 옵션 (--gtest_output=”xml: report.xml”)을 사용하여 Google 테스트 사례에 대한 보고서를 생성 할 수 없습니다.

우리의 질문은 : 일부 exe가 코드 내에서 Google 테스트를 처리하고 명령 프롬프트에서 수동으로 보고서를 가져 오려면 어떤 옵션이 있습니까?

exe를 실행하는 대신 명령 프롬프트에서 Google 테스트를 호출 할 수있는 쉘 스크립트를 작성할 수 있습니까?

+0

주어진 답이 도움이되지 않는다면 더 나은 대답을 줄 수 있도록 질문을 명확히하십시오. 귀하의 질문에 답변을 사이트에 새로 온 사람이라고해도됩니다. –

답변

0

질문을 올바르게 이해하면 프로그램이 Google 테스트 코드를 실행하지만 Google 테스트 프레임 워크와 관련된 명령 줄 옵션을 Google 테스트 프레임 워크를 호출하는 코드로 릴레이하는 메커니즘이 없습니다.

그럴 경우 프로그램에 테스트를위한 명령 줄 옵션을 릴레이하는 코드를 추가해야합니다. --google-test="..." 옵션을 추가하여 인수 값을 Google 테스트 인프라에 전달할 수 있습니다.

your_program --google-test="-gtest_output=xml:report.xml" ... 

및 코드는 관리 것이다 : 당신은 그런 다음 호출 할 수있을 것입니다

등 하나에서 여러 옵션을 구문 분석에 대해 걱정할 필요가 있습니다. 이를 처리하기위한 표준 방법이 될 것 같지 않습니다. 자동으로 명령 줄 인수를 Google 테스트 프레임 워크에 전파하는 것은 없습니다. (프로그램이 따옴표를 볼 수 없으므로 쉘에 의해 제거됩니다.)

명령 줄 인수 대신 환경 변수를 사용할 수는 있지만 접근 방법으로는 바람직하지 않습니다.

0

프로그램에서 권장되는 방법을 사용하여 Google 테스트를 호출하는 경우 기본적으로 --gtest_ 명령 줄 옵션을 Google 테스트 프레임 워크로 전달할 수 있어야합니다.

이것은 당신이 당신의 exe를 포기하려면 단순히

::testing::InitGoogleTest(&argc, argv); 

를 호출하여 수행됩니다, 당신은 단지 테스트를 실행하는 표준 주 프로그램을 제공하는 제공 gtest_main lib 디렉토리에 컴파일 테스트를 연결할 수 있습니다.

관련 문제