aspect-build / rules_py

More compatible Bazel rules for running Python tools and building Python projects
Apache License 2.0
73 stars 22 forks source link

[Bug]: py_test does not work with bazel coverage #353

Open jab opened 1 month ago

jab commented 1 month ago

What happened?

Using bazel coverage with an aspect py_test target always results in no coverage data being collected.

Version

Development (host) and target OS/architectures:

Output of bazel --version: aspect 5.10.1

Version of the Aspect rules, or other relevant rules from your WORKSPACE or MODULE.bazel file: Current latest releases. See repro linked below.

Language(s) and/or frameworks involved: Python

How to reproduce

Please see https://github.com/jab/aspect-py-test-coverage-bug for a minimal reproduction.

alexeagle commented 1 month ago

https://github.com/aspect-build/rules_py/issues/303 seems related - I see you aren't using a py_pytest_main so I'm not sure if the workaround there is useful.

jab commented 1 month ago

I didn't use py_pytest_main so as to provide a more minimal reproduction. But I am interested in experimenting with py_pytest_main more at some point.

I did take a quick a look at #303, but since I prefer not to use pytest-cov, it didn't seem like it would apply to me. (I agree with the reasons in https://www.youtube.com/watch?v=sPgvHGkmd0U for preferring to use coverage.py to invoke my test runner directly, as bazel coverage does with py_test targets.)