diff --git a/coverage.py b/coverage.py new file mode 100755 index 0000000..fdd634b --- /dev/null +++ b/coverage.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +import os +import argparse +import webbrowser + + +def generate_cov_report(open_report: bool): + os.environ["RUSTFLAGS"] = "-Cinstrument-coverage" + os.environ["LLVM_PROFILE_FILE"] = "target/coverage/%p-%m.profraw" + os.system("cargo test") + os.system( + "grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing " + "-o ./target/debug/coverage/" + ) + if open_report: + coverage_report_path = os.path.abspath("./target/debug/coverage/index.html") + webbrowser.open_new_tab(coverage_report_path) + + +def main(): + parser = argparse.ArgumentParser(description="Generate coverage report and optionally open it in a browser") + parser.add_argument("--open", action="store_true", help="Open the coverage report in a browser") + args = parser.parse_args() + generate_cov_report(args.open) + + +if __name__ == "__main__": + main()