我正在尝试对我的包进行一些测试,并且我需要使用的文件位于数据文件夹中,因此当我尝试在代码中使用它时,我会这样做,randomFuncName(joinpath(@__DIR__, "src", "data", "etc", "etc"))但问题是因为我位于“test”文件夹中(假设我正在运行测试)它创建“.../.../test/src/data/...”的相对路径,而不仅仅是“src/data”。
关于如何在不使用绝对路径的情况下指定此路径(这样它可以在 CI 和其他系统上工作)的任何想法?
我更喜欢使用包的位置而不是依赖相对路径。例如,当您的项目增长时,您可能希望拥有许多测试文件并将它们移动到子文件夹中。始终依赖joinpath(@__DIR__, "..","something")意味着您正在对运行测试的文件所在位置做出一些假设。
因此我要做的是使用pathof(Module):
using PackageName
BASE_FOLDER = dirname(dirname(pathof(PackageName)))
test_file = joinpath(BASE_FOLDER, "data", "file.txt")
Run Code Online (Sandbox Code Playgroud)
当然,这是非常主观的:-)