在 Haskell 个测试中访问测试资源

Access test resources within Haskell tests

这可能是一个基本问题,但我已经在谷歌上搜索了一段时间...我有一个 Cabal 化的 Haskell 项目,我正在为其编写集成测试.我希望能够在同一个存储库中包含我的项目的测试资源并在测试中访问它们。例如,这是我想要完成的几件事:

1) 将虚拟数据库实例检查到我的存储库中,包括启动数据库进程的 shell 脚本。我想编写一个 Hspec 集成测试来启动数据库进程,对其进行一些调用,然后将其关闭。所以我需要能够找到 shell 脚本,以便我可以在其上使用 System.Process.createProcess

2) 签入成对的 "input" 和 "output" 文件。我的测试应该处理每个输入文件并将它们与相应的输出文件进行比较以确保它们匹配。 (我读过 "golden" 但它似乎并没有首先解决 finding/reading 输入文件的问题?)

简而言之,如何在我的 Haskell 项目的根文件夹中创建一个 "resources" 文件夹并在测试中找到它的路径?

查看使用输入和输出文件的现有项目。

以黑线鳕为例,源代码在https://github.com/haskell/haddock. They have the test files under a folder (https://github.com/haskell/haddock/tree/master/html-test/ref) and they are referenced as extra-source-files in the cabal file (https://github.com/haskell/haddock/blob/master/haddock.cabal). Then the test code (https://github.com/haskell/haddock/blob/master/html-test/run.lhs)使用一些CPP宏(__FILE__)获取当前目录,然后可以解析相对于该文件夹的文件。