Импорт из дочернего каталога в сеансе ghci (импорт модулей из тестов в yesod)

Когда вы создаете скаффолдинговый сайт в yesod, он помещает тесты в отдельный каталог, например так:

YourProj/
YourProj/SomeModule.hs
YourProj/Handlers/FooHandler.hs
...
YourProj/tests/main.hs
YourProj/tests/FooTests.hs

Итак, теперь я хочу запустить GHCI и импортировать некоторый код из YourProj/tests/main.hs или же YourProj/tests/FooTests.hs играть с. Как мне это сделать? Я старался:

cabal-dev ghci
> :set -itests
> :load tests/TestImport.hs
tests/TestImport.hs:15:8:
    Could not find module `Control.Monad.IO.Class'
    It is a member of the hidden package `transformers-0.3.0.0'.
    Perhaps you need to add `transformers' to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

Таким образом, хотя мне удалось добавить подкаталог, у меня все еще есть проблемы из-за различной конфигурации build-depends параметр в cabal-файле для test-suite.

Как мне запустить cabal-dev ghci и импортировать некоторый код из тестов в Yesod?

1 ответ

Решение

Итак, ответ таков:

  1. добавьте все недостающие модули внутри вашего файла build-depends вашего теста в build-depends вашего приложения на вершине.
  2. бежать cabal-dev ghci внутри корня приложения и делать :set -itests

Вы должны быть в состоянии сделать что-то вроде :load tests/EntriesTest.hs хорошо.

Другие вопросы по тегам