代码块:单元测试文件需要文件的整个地址

CodeBloks: Unit test file requires entire address of a file

本文关键字:文件 地址 单元测试 代码      更新时间:2023-10-16

我使用CodeBlocks在c++中编写程序,我注意到以下几点:我的主类和我的Unit Test类都在同一个文件夹中(比如FolderName)。从这两个文件夹中,我调用一个方法,该方法输入位于同一文件夹中的文件(FileName.txt)。从main中我这样调用它,它工作得很好。

 obj.("FileName.txt");

从测试文件中,我需要给出文件的整个地址才能使其工作。

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

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

如果你已经明白了,我很抱歉,但我将为其他可能想知道的人回答。

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

你正在使用gtest,但不管你使用哪个框架,都有几种方法来完成你的要求:

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

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

欢呼。