2013-03-19 6 views
0

CodeBlocks를 사용하여 C++로 프로그램을 작성하고 있는데 다음과 같은 사실을 발견했습니다. 내 메인 클래스와 하나의 Unit Test 클래스는 모두 같은 폴더에 있습니다 (예 : FolderName). 두 가지 모두에서 동일한 폴더 (FileName.txt)에있는 파일을 입력하는 메소드를 호출합니다. 메인에서 나는 이것을 이렇게 부르고, 잘 동작합니다.CodeBloks : 단위 테스트 파일에 파일의 전체 주소가 필요합니다.

obj.("FileName.txt"); 

테스트 파일에서 파일의 전체 주소를 제공해야합니다.

obj.("/home/myName/FolderName/FileName.txt"); 

단위 테스트 파일을 기본 파일과 같이 작동하도록 설정해야한다는 것을 알고 있지만 알아 내지 못했습니다. 이것이 중요한지는 모르겠지만 리눅스에서 작업하고 있습니다.

+0

어떤 단위 테스트 프레임 워크 (있는 경우)를 사용했는지 모르겠지만 "./FileName.txt"를 쓰면 작동 할 수 있습니다. – Aleph

답변

1

당신이 이미 알아 낸 것이라면 사과하겠습니다 만 궁금해할만한 사람에게는 답해 드리겠습니다.

CodeBlocks은 단위 테스트를위한 실행 파일을 만들고 /home/myName/FolderName/bin/unitTest/에 저장합니다. CodeBlocks은 단위 테스트를 실행할 때이 실행 파일을 실행합니다. 따라서 귀하의 PW는 /home/myName/FolderName/이 아니라 /home/myName/FolderName/bin/unitTest/입니다.

당신은 gtest를 사용하고 있지만 관계없이 사용하는 프레임 워크, 당신이 요구하는지 무엇을 할 수있는 몇 가지 방법이 있습니다.

가장 좋은 방법은 주소 OBJ를 사용하는 것입니다은 ("../../FileName.txt")

다른 옵션은 FileName.txt/home/myName/FolderName/bin/unitTest/ (또는 유닛 테스트 빌드 옵션의 이름을 무엇이든)으로 복사하는 것입니다. 단위 테스트에서 "FileName.txt"을 사용하면됩니다.

건배.

+0

두 번째 옵션을 알아 냈는데, FileName.txt를 bin/unitTest에 복사했지만 다른 옵션도 매우 유용합니다. 고맙습니다!! – FranXh