0

我正在使用 CodeBlocks 用 C++ 编写我的程序,我注意到以下内容。我的主类和我的单元测试类都在同一个文件夹中(比如 FolderName)。我从他们两个中调用了一个方法,该方法输入了同一文件夹中的文件(FileName.txt)。从 main 我这样称呼它,它工作正常。

 obj.("FileName.txt");

从测试文件中,我需要提供文件的完整地址才能使其工作。

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

我知道必须有一种设置单元测试文件的方法,以便它像主文件一样工作,但我无法弄清楚。我不确定这是否重要,但我正在使用 Linux

4

1 回答 1

1

如果您已经知道这一点,我深表歉意,但我会为其他可能想知道的人回答。

CodeBlocks为您的单元测试创​​建一个可执行文件并将其存储在/home/myName/FolderName/bin/unitTest/. CodeBlocks执行单元测试时运行此可执行文件。因此,您的密码不是/home/myName/FolderName/but /home/myName/FolderName/bin/unitTest/

您正在使用 gtest,但无论您使用哪个框架,都有几种方法可以满足您的要求:

最好的选择是使用地址 obj.( "../../FileName.txt")

另一个选项是复制FileName.txt/home/myName/FolderName/bin/unitTest/(或任何您命名的单元测试构建选项)。然后,您可以简单地"FileName.txt"在单元测试中使用。

干杯。

于 2013-03-21T03:37:43.110 回答