Ответ 1
Нет атрибута Cabal, который позволяет связывать файлы данных с набором тестов (или любой неглобальной строфой вашей сборки).
Общим решением этой проблемы является объявление этих файлов в атрибуте extra-source-files
. Этот атрибут также является глобальным, и он гарантирует, что перечисленные файлы включены в деблокирующий архив, чтобы набор тестов мог найти их при запуске. В отличие от data-files
, однако, extra-source-files
не установлены — который, вероятно, вы хотите, так как ваш тестовый набор также не установлен. Таким образом, файлы доступны во время сборки (и запуска тестового набора), но они не занимают места в установке.
Сборка драйверов, таких как cabal-install
и stack
, будет выполнять набор тестов с текущим рабочим каталогом, указывающим в каталог верхнего уровня вашего проекта, т.е. в каталоге, который содержит файл проекта Cabal. Таким образом, если у вас есть файл данных в test/my-data-file.txt
, тогда ваш тестовый набор может получить доступ к файлу, используя именно этот путь.