我正在尝试为构建可执行文件的cabal项目编写测试套件。我希望套件中的测试可以运行该特定的可执行文件,但我不知道在哪里可以找到它(因为我的测试可能会从某个未知位置的沙箱运行)。
当它调用我的测试套件时,Cabal应该知道我的项目的可执行文件在哪里。我的测试模块/程序是否有某种方法可以从Cabal收集此信息和其他类似信息,可能使用新的detailed-1.0
测试框架?
答案 0 :(得分:2)
有一个"魔法"您可以在cabal文件中包含模块,以查询与项目相关的路径。
name: myproject
library
other-modules:
Paths_myproject
由此模块导出(import Paths_myproject
)有几个FilePath
值,可用于查询Cabal在安装项目时使用的各种路径。
Paths_myproject.getBinDir
Paths_myproject.getDataDir
Paths_myproject.getDataFileName
Paths_myproject.getLibDir
Paths_myproject.getLibexecDir
Paths_myproject.getSysconfDir
Paths_myproject.version