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

Posted

技术标签:

【中文标题】在 Cabal 测试套件中找到我的可执行文件【英文标题】:Finding my executable in a Cabal test suite 【发布时间】:2014-06-28 00:54:54 【问题描述】:

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

Cabal 在调用我的测试套件时应该知道我的项目的可执行文件在哪里。我的测试模块/程序是否可以通过新的detailed-1.0 测试框架从 Cabal 收集这些信息和其他类似信息?

【问题讨论】:

你不能使用 cabal 数据文件和 Paths_foo 模块吗? 【参考方案1】:

您可以在 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

【讨论】:

以上是关于在 Cabal 测试套件中找到我的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cabal 在 ghcid 中运行测试套件?

使用 Stack 分析构建

使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?

未找到 GraphViz 的可执行文件 - 为啥通过 pip 安装 graphViz 后没有安装可执行文件?

如何在单个可执行文件中将数据重定向到标准输入?

如何编译依赖项以在 cabal 沙箱中进行分析