首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在阴谋测试套件中包含数据文件。

仅在阴谋测试套件中包含数据文件。
EN

Stack Overflow用户
提问于 2015-03-31 05:47:10
回答 1查看 698关注 0票数 20

我有一些数据文件,这些文件只属于我的测试程序,与主库一起分发可能会让人感到困惑。

不幸的是, field只适用于整个阴谋文件,而不是像test-suite那样的一个部分。如果我尝试在测试套件中使用它,我只会得到:

代码语言:javascript
复制
Warning: ssh.cabal: Unknown fields: data-files (line 71)

是否有一种自然的方法将这些文件与我的测试程序相关联,以便仅在指定--enable-tests时才复制它们?

如果没有更好的方法,我可能会使用模板Haskell将它们嵌入到可执行文件中,然后在运行时再次写出它们,或者类似的东西,但是感觉很难看。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 10:27:58

没有Cabal属性允许您将数据文件与测试套件(或构建的任何非全局节)关联起来。

这个问题的常见解决方案是在extra-source-files属性中声明这些文件。该属性也是全局的,它确保所列出的文件包含在发行版tarball中,以便测试套件在运行时能够找到它们。但是,与data-files不同的是,extra-source-files没有安装--这可能是您想要的,因为您的测试套件也没有安装。因此,在构建(和测试套件运行)期间,这些文件是可用的,但它们在安装过程中不会占用空间。

cabal-installstack这样的构建驱动程序将执行测试套件,当前的工作目录指向项目的顶层目录,即包含项目的Cabal文件的目录。因此,如果您在test/my-data-file.txt上有一个数据文件,那么您的测试套件就可以使用该路径访问该文件。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29361413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档