MyNixOS website logo
Description

HTML Coverage Reports for Rules_Haskell.

Generate coverage reports from Rules_Haskell Bazel coverage output

coverage-reports

An executable which reads Bazel test.xml test results generated by bazel coverage for Rules_Haskell's haskell_test rule. These rules must have coverage_report_format set to "html" to be compatible with this tool.

Example Usage

If we have a target defined by the Rules_Haskell haskell_test rule, such as:

haskell_test(
    name = "two-libs",
    srcs = [
        ...
    ],
    coverage_report_format = "html", # this must be set to "html" (not "text")
    expected_covered_expressions_percentage = ...,
    expected_uncovered_expression_count = ...,
    deps = [
        ...
    ],
)

If we run bazel coverage //path/to/package:two-libs, the HTML report files will be appended to the test log (visible with --test_output=all set, or by looking in the bazel-testlogs directory at the relevant test.xml file). Bazel test rules cannot generate output files, hence why we append the HTML reports directly into the testlog.

Next, to extract the HTML reports and make them viewable in a browser, we use this tool, the bazel-coverage-report-renderer. It's as simple as running:

bazel-coverage-report-renderer \
    --testlog=<path/to/bazel-testlogs>/<path/to/package>two-libs/test.xml \
    --destdir=path/to/destination/directory>

The tool will tell you where you can find the resulting files. The hpc_index.html file is the homepage for your coverage results.

Metadata

Version

0.1.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows