You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dune项目中使用`dune test`读取本地目录文件?

解决Dune项目主程序与测试工作目录不一致的文件路径问题

核心问题是Dune的默认行为差异:dune exec运行主程序时,工作目录是项目根目录;而dune test执行测试时,默认工作目录是test/_build/default(相对项目根),导致相对路径的基准不一致。

最直接的解决方案是修改test/dune配置,强制测试运行时切换到项目根目录,无需修改任何业务代码:

  1. 打开test/dune文件,在测试目标中添加(run_dir ../)配置项
  2. 修改后的test/dune示例:
(test
 (name test)
 (libraries lib)
 (run_dir ../))

添加(run_dir ../)后,dune test执行时,测试程序的工作目录会被设置为项目根目录(和dune exec bin/main.exe的工作目录完全一致),此时libfile.ml中原本的data.csv相对路径就能正确找到项目根下的文件,不用再切换到../data.csv。

补充说明:之前你尝试在test/dune依赖中添加文件时需要用../data.csv,是因为Dune处理依赖路径时是相对于当前dune文件所在目录的,这和程序运行时的工作目录是两个不同的概念,设置run_dir才是解决运行时路径基准问题的关键。

内容的提问来源于stack exchange,提问作者Addem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 02:12:41