测试Julia包时如何包含位于测试文件夹之外的文件

测试Julia包时如何包含位于测试文件夹之外的文件,julia,Julia,我正在尝试对我的包进行一些测试,并且我需要使用的文件位于数据文件夹中,因此当我尝试在代码中使用它时,我会使用randomFuncName(joinpath(@\uu DIR\uuu,“src”,“data”,“etc”,“etc”),但问题是,由于我在“test”文件夹中(假设我正在运行测试),它会创建“../…/test/src/data/…”而不仅仅是“src/data” 关于如何在不使用绝对路径的情况下指定此路径(以便它在CI和其他系统上工作)的任何想法取决于您所在的文件,而不是pwd。因

我正在尝试对我的包进行一些测试,并且我需要使用的文件位于数据文件夹中,因此当我尝试在代码中使用它时,我会使用
randomFuncName(joinpath(@\uu DIR\uuu,“src”,“data”,“etc”,“etc”)
,但问题是,由于我在“test”文件夹中(假设我正在运行测试),它会创建“../…/test/src/data/…”而不仅仅是“src/data”


关于如何在不使用绝对路径的情况下指定此路径(以便它在CI和其他系统上工作)的任何想法取决于您所在的文件,而不是
pwd
。因此,您可以从
src
f(joinpath(@\uu-DIR)
的内部调用
f(joinpath(@\uu-DIR,“foo.jl”)
))从内部
测试

我更喜欢使用包的位置,而不是依赖相对路径。 例如,当项目增长时,您可能希望有许多测试文件,并将它们移动到子文件夹中。依赖于
joinpath(@uuu DIR_uu,“…”,“…”)
始终意味着您正在对运行测试的文件的位置进行一些假设

因此,我将使用
pathf(模块)


当然,这是非常主观的:-)

Csn您是否指定所需的路径作为相对于测试目录的路径?例如../data?可能是dirname(@__DIR______________________________________。因此,从技术上讲,我必须切换目录才能访问数据文件夹或sec文件夹,因为它们与测试文件夹处于同一级别。
@\uuuu DIR\uuu
取决于您所在的文件,而不是
pwd
。所以你可以从
src
的内部调用
f(joinpath(@u-DIR,uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!你能把这个换成答案让我接受吗?
using PackageName
BASE_FOLDER = dirname(dirname(pathof(PackageName)))
test_file = joinpath(BASE_FOLDER, "data", "file.txt")