2016-10-08 9 views
7

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

ответ

9

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

Пример:

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

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

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

(изменить предложенный Stryczynski @ Крис)

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

stack ghci --ghci-options -isrc --ghci-options -itest ExampleProduct:Example-test 
+1

Спасибо! Это сработало! –

+0

Если вы это сделаете, ': r' не перезагрузит изменения в вашу библиотеку. Вы знаете, как это сделать, чтобы ': r' перекомпилировал lib и тесты? –

+0

@SeanClarkHess Существует несколько способов настройки тестов. Вы можете настроить его, добавив библиотеку, которую вы тестируете, в зависимости от сборки набора тестов, или просто добавьте исходную папку библиотеки в тестовый набор hs-source-dirs. Я * верю * ': r' работает с последним, а не с первым, но я не уверен. Прошу прощения за то, что вы так долго заметили свой вопрос. – Libby