Как я могу генерировать отчеты о покрытии HTML-кода с помощью new cabal?

#haskell #code-coverage #cabal #cabal-new

#haskell #покрытие кода #cabal #cabal-новый #haskell-program-coverage

Вопрос:

При запуске stack test --coverage генерируется хороший HTML-отчет, показывающий, какие строки охватывает ваш набор тестов. Как я могу добиться того же с помощью cabal new-test ?

Я могу передать, --enable-coverage чтобы сгенерировать .tix файл, но я не уверен, что запускать в .tix файле для создания HTML-отчета. Я почти уверен, что это связано hpc но я не смог выработать правильную команду.

У меня стандартная конфигурация Cabal моего приложения, представляющего собой библиотеку, с набором тестов для этой библиотеки.

Ответ №1:

Кажется, это так же просто, как передать --enable-coverage в cabal new-test . Ранее я запускал тесты с cabal new-run test:test , чтобы обойти некоторые ограничения new-test (например, отсутствие потоковой передачи и цветов), поэтому исправление заключается в использовании new-test вместо new-run .

Ответ №2:

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 .