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

时间:2014-06-28 00:54:54

标签: haskell testing cabal

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

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

1 个答案:

答案 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