代码块:单元测试文件需要文件的完整地址 我用C++代码编写我的程序,我注意到了下面的内容。我的主类和一个单元测试类都在同一个文件夹中(比如FolderName)。从这两个文件夹中,我调用一个方法,该方法输入同一文件夹中的文件(FileName.txt)。从主要方面来说,我这样称呼它,它工作得很好 obj.("FileName.txt");

代码块:单元测试文件需要文件的完整地址 我用C++代码编写我的程序,我注意到了下面的内容。我的主类和一个单元测试类都在同一个文件夹中(比如FolderName)。从这两个文件夹中,我调用一个方法,该方法输入同一文件夹中的文件(FileName.txt)。从主要方面来说,我这样称呼它,它工作得很好 obj.("FileName.txt");,c++,file,io,codeblocks,C++,File,Io,Codeblocks,从测试文件中,我需要给出文件的整个地址,以便它工作 obj.("/home/myName/FolderName/FileName.txt"); 我知道必须有一种方法来设置单元测试文件,使其像main一样工作,但我无法理解它。我不确定这是否重要,但我正在Linux上工作,如果您已经弄明白了这一点,我深表歉意,但我会为任何其他可能感到疑惑的人回答 CodeBlocks为单元测试创建一个可执行文件,并将其存储在/home/myName/FolderName/bin/unitTest/中代码块在执行

从测试文件中,我需要给出文件的整个地址,以便它工作

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

我知道必须有一种方法来设置单元测试文件,使其像main一样工作,但我无法理解它。我不确定这是否重要,但我正在Linux上工作,如果您已经弄明白了这一点,我深表歉意,但我会为任何其他可能感到疑惑的人回答

CodeBlocks
为单元测试创建一个可执行文件,并将其存储在
/home/myName/FolderName/bin/unitTest/
中<代码>代码块在执行单元测试时运行此可执行文件。因此,您的pwd不是
/home/myName/FolderName/
,而是
/home/myName/FolderName/bin/unitTest/

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

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

另一个选项是将
FileName.txt
复制到
/home/myName/FolderName/bin/unitTest/
(或任何您命名的单元测试构建选项)。然后,您只需在单元测试中使用
“FileName.txt”


干杯。

我不知道您使用的是什么单元测试框架(如果有的话),但是写“/FileName.txt”可能会有用。我找到了第二个选项,将FileName.txt复制到bin/unitTest,但另一个选项也很有帮助。非常感谢。