Как я могу сгенерировать отчеты о покрытии HTML-кода с новым Cabal?
Бег stack test --coverage
генерирует хороший HTML-отчет, показывающий, какие строки охватывает ваш набор тестов. Как я могу добиться того же, используя cabal new-test
?
Я могу пройти --enable-coverage
генерировать .tix
файл, но я не уверен, что запустить на .tix
файл для генерации отчета в формате HTML. Я уверен, что это связано hpc
но я не смог выработать правильную команду.
У меня есть стандартная конфигурация Cabal моего приложения в виде библиотеки с набором тестов для этой библиотеки.
2 ответа
Похоже, это так же просто, как прохождение --enable-coverage
в cabal new-test
, Ранее я проводил тесты с cabal new-run test:test
обойти некоторые ограничения new-test
(например, не хватает потоковой передачи и цветов), поэтому исправление заключается в использовании new-test
вместо new-run
,
Cabal 3.6 должен уметь генерировать отчет HPC. Есть одно предостережение; эта ошибка может появиться:
Error:
Internal libraries only supported with per-component builds.
Per-component builds were disabled because program coverage is enabled
https://github.com/haskell/cabal/issues/6440
Чтобы избежать ошибки, добавьте в
cabal.project
:
package *
coverage: True
library-coverage: True
тогда
cabal test
(без
--enable-coverage
). Отчет должен быть где-то в
dist-newstyle
.