haskell – 在Cabal测试套件中查找我的可执行文件

我正在尝试为可构建可执行文件的cabal项目编写测试套件.我希望套件中的测试运行该特定的可执行文件,但我不知道在哪里找到它(因为我的测试可能是从某个未知位置的沙箱运行).

当Cabal调用我的测试套件时,Cabal应该知道我的项目的可执行文件在哪里.我的测试模块/程序是否有某种方法可以从Cabal收集此信息和其他类似信息,可能还有新的详细1.0测试框架?

最佳答案 您可以在cabal文件中包含一个“魔术”模块,以查询与项目相关的路径.

name: myproject

library

  other-modules:       
    Paths_myproject

由此模块导出(导入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
点赞