2015-10-24 2 views
3

Я хочу сгенерировать отчет о покрытии кода с помощью Stack. Я бег прикажите составляет (опуская ключи, передаваемых для тестирования набора через --test-arguments):Создать отчет о покрытии с помощью стека

$ stack test --coverage 

Это выполняет тестирование и затем выводит следующее:

Error: The coverage report for myproject's test-suite "tests" did not consider any code. One possible cause of this is if your test-suite builds the library code (see stack issue #1008). It may also indicate a bug in stack or the hpc program. Please report this issue if you think your coverage report should have meaningful results.

Я думаю, что он должен (это создает пустое отчет). Параметры GHC идентичны для всех компонентов моего пакета. Нет необходимости в наборе тестов для перестройки библиотеки . В конце концов, если Cabal может сгенерировать отчет, Stack должен быть способен сделать это, учитывая ту же конфигурацию Cabal или я ошибаюсь?

Я открыл an issue on Стек GitHub repo как предложено.


Через некоторое время я решил создать хороший старый песочницу и генерировать отчет используя Cabal вместо (мне действительно нужно, чтобы увидеть отчет, вы знаете). Он работал ранее, но теперь я получаю:

$ cabal sandbox init 
… <everything OK> 
$ cabal update 
… <everything OK> 
$ cabal install --only-dependencies --enable-tests 
… <everything OK> 
$ cabal configure --enable-tests --enable-coverage 
… <everything OK> 
$ cabal build 
… <everything OK> 
$ cabal test 
Running 2 test suites... 
Test suite tests: RUNNING... 
Test suite tests: PASS 
Test suite logged to: dist/test/myproject-0.1.0-tests.log 
hpc: can not find HUnit_DDLSMCRs3jyLBDbJPCH01j/Test.HUnit.Lang in ["./.hpc","./dist/hpc/vanilla/mix/myproject-0.1.0","./dist/hpc/vanilla/mix/tests"] 

Что? Я этого никогда не видел, хотя раньше я писал много сообщений . Кто-то там просто решил, что я не получу этот отчет сегодня, кажется, .


Вы знаете, как создать отчет о покрытии, используя стек? У кого-нибудь преуспел в этом?

+0

Какую версию 'stack' вы используете? Последняя версия работает лучше с 'hpc'. Я использую '0.1.6.0', и он работает в основном. – Yuras

+2

Также см. Https://github.com/commercialhaskell/stack/issues/1181 – Yuras

+0

@Yuras, 'stack -version' →' Версия 0.1.6.0, Git-версия e22271f5ce9afa2cb5be3bad9cafa392c623f85c (2313 коммитов) x86_64'. – Mark

ответ

0

Недавние изменения вверх по течению зафиксировали его. Должно быть разрешено для пользователей 0.1.7.0 и более поздних версий.

1

В моем случае я все еще получал эту ошибку. Бег:

stack clean 
stack test --coverage 

решить эту проблему, как сообщает here.

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