2011-09-18 1 views
8

저는 C++ 프로젝트를 시작하려고 합니다만, 저는 기본을 고수하고 있습니다.Beginning Code :: blocks and UnitTest ++

(linux) Code :: Blocks IDE를 사용하고 싶고 일반적인 프로젝트를 쉽게 만들 수 있습니다. 그러나 UnitTest ++ 프레임 워크를 사용하여 TDD를 만들고 싶습니다. 모든 것을 깔끔하게 설정하는 방법을 모르겠습니다.

나는 이미 UnitTest::RunAllTests() 명령을 어디에 넣을 것인가에 대한 question을 요청했습니다, 그들은 가장 좋은 장소는 별도의 프로그램의 main() 나를 말했다.

코드 :: 블록에서 어떻게해야합니까? 나는 2 개의 프로젝트를 만들어야한다고 생각한다 :

  • "진짜"프로젝트는 자체적으로 main()이다;
  • 테스트를 포함하는 단위 테스트 프로젝트와 UnitTest::RunAllTests()이 포함 된 main().

그런 다음 어떻게 든 첫 번째 프로젝트를 빌드하고 빌드 프로세스 중에 두 번째 프로젝트를 실행하십시오. 나는 그것을 어떻게해야할지 모르지만 나는 혼자서 알아낼 수 있습니다.

내 질문은 :

  1. 이 올바른 방법은 무엇입니까?
  2. 다른 사람들이 다른 플랫폼에서 빌드 할 수 있도록 UnitTest ++ 프레임 워크 용 프로젝트도 만들어야합니까? 또는 프로젝트의 경로에서 준수 라이브러리를 충분히 삭제하고 있습니까?
  3. 어떻게 이러한 프로젝트의 디렉터리를 구성 할 수 있습니까? 각 패키지와 관련된 테스트를 패키지와 동일한 디렉토리에 두는 것이 좋겠지 만 동일한 디렉토리 트리에 여러 프로젝트가 있으면 괜찮습니까?
+0

UnitTest ++에서 좋은 선택 –

답변

4

나는 모든 것을 작동시킬 수 있었기 때문에 나 자신의 질문에 부분적으로 대답 할 것입니다.

  1. official documentation page의 지침에 따라 UnitTest ++ 폴더에 컴파일 된 라이브러리와 모든 소스 파일을 프로젝트 경로에 넣었습니다.
  2. 그런 다음 모든 단위 테스트를위한 테스트 프로젝트를 만들었습니다. 주 프로젝트에는 유명한 UnitTest::RunAllTests()이 포함되어 있습니다. 이 프로젝트를 빌드 할 때마다 자동으로 테스트를 실행하기 위해 여기에 빌드 후 프로세스로 $exe_output을 입력했습니다.
  3. 테스트 할 코드가있는 "실제"프로젝트를 만들었습니다. 빌드 설정에서 테스트 프로젝트를 실제 프로젝트의 종속성으로 지정 했으므로 실제 프로젝트를 빌드 할 때마다 먼저 테스트 프로젝트를 빌드합니다.

이 설정을 사용하면 테스트와 실제 코드에서 작업 할 수 있으며 실제 테스트를 실행하면 업데이트 된 테스트가 실행됩니다. 실패한 테스트라도 빌드가 실패하게됩니다.

이제 두 가지 질문이 남았습니다. "이것이 최선의 방법입니까?" "각 프로젝트는 다른 디렉토리에 있습니다.이 방법을 그대로 두는 것이 현명합니까 아니면 테스트 할 실제 코드와 동일한 폴더에 각 테스트를 넣어야합니까?"