2013-03-19 52 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