Как загрузить тесты в ghci со стеком

Я создал очень простой проект со стеком. Он содержит: исполняемый файл, библиотеку и тестовые цели в соответствующем файле cabal. Когда я загружаю код в ghci через стек ghci, я не могу получить доступ к тесту там, даже если они находятся в отдельном модуле. Есть ли способ использовать это таким образом?


person Konstantin Solomatov    schedule 08.10.2016    source источник


Ответы (1)


Попробуйте stack ghci (your project name):(the test suite name). Затем вы сможете ввести main, и ваши тесты будут запущены.

Пример:

Если ваш файл проекта .cabal имеет следующие значения:

name: ExampleProject
...
test-suite Example-test

Тогда команда для запуска будет stack ghci ExampleProject:Example-test

(изменение предложено @Chris Stryczynski)

Чтобы просмотреть каталоги test и src, чтобы они обновлялись при перезагрузке с помощью :r, запустите:

stack ghci --ghci-options -isrc --ghci-options -itest ExampleProduct:Example-test
person Libby    schedule 08.10.2016
comment
Если вы это сделаете, :r не будет перезагружать изменения в вашу библиотеку. Вы знаете, как это сделать, чтобы :r перекомпилировал библиотеку и тесты? - person Sean Clark Hess; 11.10.2016
comment
@SeanClarkHess Есть несколько способов настройки тестов. Вы можете настроить его, добавив библиотеку, которую вы тестируете, в набор тестов, зависящий от сборки, или вы можете просто добавить исходную папку библиотеки в набор тестов hs-source-dirs. Я верю :r работает со вторым, а не первым, но я не уверен. Извините, что так долго не обращал внимания на ваш вопрос. - person Libby; 26.10.2016
comment
Я думаю, вам нужно сделать stack install тестируемой библиотеки перед выполнением приведенной выше команды, не так ли? - person Damian Nadales; 24.02.2017