2015-05-26 2 views
0

Это, вероятно, основной вопрос, но я некоторое время на нем работал в Googling ... У меня есть проект Cabal-ized Haskell, и я в процессе написания интеграционных тестов для него , Я хочу включить тестовые ресурсы для моего проекта в одно и то же репо и получить доступ к ним в тестах. Например, вот пара вещей, которые я хочу выполнить:Доступ к тестовым ресурсам в тестах Haskell

1) Проверьте экземпляр базы данных в моем репо, включая сценарий оболочки, который закручивает процесс базы данных. Я хочу написать тест интеграции Hspec, который закручивает процесс базы данных, вызывает некоторые вызовы, а затем отключает его. Поэтому мне нужно найти сценарий оболочки, чтобы я мог использовать System.Process.createProcess.

2) Проверьте парные «входные» и «выходные» файлы. Мой тест должен обрабатывать каждый из входных файлов и сравнивать их с соответствующим выходным файлом, чтобы убедиться, что они совпадают. (Я читал о «золоте», но, похоже, он вообще не решает проблему поиска/чтения входных файлов?)

Вкратце, как я могу создать папку «Ресурсы» в корневой папке моего проекта Haskell и найти путь к нему внутри тестов?

+0

Возможно, я не совсем понимаю вопрос - вы создаете такую ​​папку * resources *, как и любой другой, - просто создайте ее с помощью вашей OS/Filemanager - в Haskell нет ничего особенного. – Carsten

ответ

1

Посмотрите на существующий проект, который использует входной и выходной файл.

Например, возьмите пикшу, исходный код находится в https://github.com/haskell/haddock. У них есть тестовые файлы под папкой (https://github.com/haskell/haddock/tree/master/html-test/ref), и они упоминаются как файлы с дополнительными источниками в файле cabal (https://github.com/haskell/haddock/blob/master/haddock.cabal). Затем тестовый код (https://github.com/haskell/haddock/blob/master/html-test/run.lhs) использует некоторый макрос CPP (__FILE__) для получения текущего каталога и может затем разрешать файлы относительно этой папки.

Смежные вопросы