ESPSomfy-RTS/AGENTS.md
cjkas bd399db73d ci: coverage reports for the native and web UI tests
A coverage env (the native env with gcov counters) runs the native
tests in CI; gcovr writes the HTML report and a table on the run's
summary page. The web UI tests report coverage with Node's built-in
coverage, and genhtml turns its lcov into HTML. Both reports are run
artifacts, and pushes to main publish them to GitHub Pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:07:58 +01:00

1.2 KiB

Testing instructions

  • Fix any test or type errors until the whole suite is green.
  • Add or update tests for the code you change, even if nobody asked.
  • to test run pio test -e native
  • the web UI's protocol 2 client (data-src/js/): node --test "test/js/*.test.js". The minify step joins those files into index.js, so each one ends with a module.exports footer for Node and adds nothing global but its classes.
  • coverage of the native tests: pio test -e coverage, then gcovr (pip install gcovr), which reads gcovr.cfg and writes coverage/coverage_details.html. Files the native env doesn't build aren't in it. CI publishes the coverage of main to the repo's GitHub Pages.
  • coverage of the web UI tests: add --experimental-test-coverage --test-coverage-include="data-src/js/**" to the node --test command.

Building

  • Firmware builds need pioarduino's Core (pip install pioarduino, or the pioarduino IDE extension). Stock PlatformIO Core refuses the pinned platform, see ADR 0003.
  • The platform installs its Python packages into ~/.platformio/penv and fails on Windows while pio.exe from that env is running. Run builds as python -m platformio from that env's Python.