── test
├── dune
├── test_program.ml
└── foo_files
├── foo_a
└── foo_b
Как test_program найти файлы в папке foo_files при запуске с помощью dune test?
Я вижу, что при запуске программы текущим рабочим каталогом является _build/default/test и папка foo_files туда не копируется.
дюна 3.15.3





Я полагаю, что есть более идиоматический способ, но поскольку тестовая программа будет запускаться только из dune test в копии репозитория, на данный момент относительные пути работают нормально, например:
"../../../test/foo_files"
По сути, dune будет копировать в _build/default только те объекты, которые помечены как зависимости целей, которые он должен построить. В вашем случае файл dunetest может выглядеть так:
; tells dune that some rules might depend on foo_files' content
; see https://dune.readthedocs.io/en/stable/reference/dune/data_only_dirs.html
(data_only_dirs foo_files)
(test
(name test_program)
(deps (source_tree foo_files))
; other fields if needed
)
Это не позволит дюне узнать о зависимости, а это значит, что в режиме наблюдения она не сможет повторно запускать тесты при изменении входных файлов.