Импорт из дочернего каталога в сеансе 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 ответ
Решение
Итак, ответ таков:
- добавьте все недостающие модули внутри вашего файла
build-depends
вашего теста вbuild-depends
вашего приложения на вершине. - бежать
cabal-dev ghci
внутри корня приложения и делать:set -itests
Вы должны быть в состоянии сделать что-то вроде :load tests/EntriesTest.hs
хорошо.