2013-03-19 41 views
0

我正在使用CodeBlocks在C++中編寫我的程序,並且我注意到了以下內容。我的主類和單元測試類都在同一個文件夾(比如FolderName)中。從它們中,我調用一個輸入文件的方法,該文件位於同一文件夾(FileName.txt)中。從主要我這樣稱呼它,並且它工作正常。CodeBloks:單元測試文件需要文件的整個地址

obj.("FileName.txt"); 

從測試文件中,我需要給出文件的整個地址才能工作。

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

我知道必須有設置的單元測試文件,以便它的工作方式類似於主,但我無法弄清楚的一種方式。我不確定這是否重要,但我正在開發Linux

+0

我不知道你正在使用什麼單元測試框架(如果有的話),但寫「./FileName.txt」可能工作。 – Aleph 2013-03-19 15:20:51

回答

1

我很抱歉,如果你已經知道了這一點,但我會回答任何可能想知道的人。

CodeBlocks創建爲/home/myName/FolderName/bin/unitTest/你的單元測試,並將其存儲的可執行文件。 CodeBlocks在執行單元測試時運行此可執行文件。因此,您的密碼不是/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 2013-03-21 14:47:56