[Bug]: py_test does not work with bazel coverage
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.
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.
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.)
I happened to reproduce this today while working on the Python course and debugging for a client.
I'm seeing no coverage data on 1.3.0, not using pytest. Using absltest. Do we have to use pytest to get coverage? I prefer to not use pytest because it makes test startup noticably slower.
@garymm yes you're right, my change closing this issue is specific to pytest.
I believe the pytest is also suffering from lack of coverage, created https://github.com/kwesolowski/rules_py/tree/repro/coverage-validation-test-clean as reproduction. Should i file new issue while keeping this for generic py_test