Closed gro1m closed 2 years ago
Hi @gro1m, thanks for trying to get this to work! I checked out your branch and ran it locally, and the coverage still generates filename
without pycobertura/
as prefix, and I'm still getting the same warning:
CoverageWarning: --include is ignored because --source is set (include-ignored)
Can you get it to work? What commands are you running?
I don't know why this is happening, and unless you do, we might need to reach out to the coveragepy folks about it. My Google searches weren't fruitful and all I get to is the official docs that mention:
Warnings
...
- “–include is ignored because –source is set (include-ignored)” Both
--include
and--source
were specified while running code. Both are meant to focus measurement on a particular part of your source code, so--include
is ignored in favor of--source
.
Source: https://coverage.readthedocs.io/en/coverage-4.5.1x/cmd.html#warnings
Hi @aconrad
It has to work - there are no warnings anymore :)
(base) $ git branch
feature/add-regex
* feature/cleanup-source-and-include
feature/hideable-columns
master
(base) $ conda activate py39
(py39) $ conda list
# packages in environment at ~/opt/anaconda3/envs/py39:
#
# Name Version Build Channel
attrs 21.4.0 pypi_0 pypi
black 21.12b0 pypi_0 pypi
bleach 4.1.0 pypi_0 pypi
build 0.7.0 pypi_0 pypi
ca-certificates 2021.10.26 hecd8cb5_2
certifi 2021.10.8 py39hecd8cb5_0
charset-normalizer 2.0.7 pypi_0 pypi
click 8.0.3 pypi_0 pypi
colorama 0.4.4 pypi_0 pypi
coverage 6.3.2 pypi_0 pypi
distlib 0.3.4 pypi_0 pypi
docutils 0.18 pypi_0 pypi
filelock 3.4.2 pypi_0 pypi
idna 3.3 pypi_0 pypi
importlib-metadata 4.8.2 pypi_0 pypi
iniconfig 1.1.1 pypi_0 pypi
jinja2 3.0.3 pypi_0 pypi
keyring 23.2.1 pypi_0 pypi
libcxx 12.0.0 h2f01273_0
libffi 3.3 hb1e8313_2
lxml 4.7.1 pypi_0 pypi
markupsafe 2.0.1 pypi_0 pypi
mock 4.0.3 pypi_0 pypi
mypy-extensions 0.4.3 pypi_0 pypi
ncurses 6.3 hca72f7f_2
openssl 1.1.1l h9ed2024_0
packaging 21.3 pypi_0 pypi
pathspec 0.9.0 pypi_0 pypi
pep517 0.12.0 pypi_0 pypi
pip 21.2.4 py39hecd8cb5_0
pkginfo 1.8.1 pypi_0 pypi
pluggy 1.0.0 pypi_0 pypi
py 1.11.0 pypi_0 pypi
pycobertura 2.1.0 dev_0 <develop>
pygments 2.10.0 pypi_0 pypi
pyparsing 3.0.6 pypi_0 pypi
pytest 7.1.1 pypi_0 pypi
pytest-cov 3.0.0 pypi_0 pypi
python 3.9.7 h88f2d9e_1
readline 8.1 h9ed2024_0
readme-renderer 30.0 pypi_0 pypi
requests 2.26.0 pypi_0 pypi
requests-toolbelt 0.9.1 pypi_0 pypi
rfc3986 1.5.0 pypi_0 pypi
ruamel-yaml 0.17.21 pypi_0 pypi
ruamel-yaml-clib 0.2.6 pypi_0 pypi
setuptools 58.0.4 py39hecd8cb5_0
six 1.16.0 pypi_0 pypi
sqlite 3.36.0 hce871da_0
tabulate 0.8.9 pypi_0 pypi
tk 8.6.11 h7bc2e8c_0
tomli 1.2.2 pypi_0 pypi
tox 3.24.5 pypi_0 pypi
tqdm 4.62.3 pypi_0 pypi
twine 3.6.0 pypi_0 pypi
tzdata 2021e hda174b7_0
urllib3 1.26.7 pypi_0 pypi
virtualenv 20.13.0 pypi_0 pypi
webencodings 0.5.1 pypi_0 pypi
wheel 0.37.0 pyhd3eb1b0_1
xz 5.2.5 h1de35cc_0
zipp 3.6.0 pypi_0 pypi
zlib 1.2.11 h1de35cc_3
(py39) $ pycobertura show coverage.xml
Filename Stmts Miss Cover Missing
--------------------- ------- ------ ------- ---------
__init__.py 2 0 100.00%
cli.py 78 0 100.00%
cobertura.py 206 0 100.00%
filesystem.py 87 0 100.00%
reporters.py 192 0 100.00%
utils.py 118 1 99.15% 38
templates/__init__.py 0 0 100.00%
templates/filters.py 12 0 100.00%
TOTAL 695 1 99.86%
(py39) $ pytest
============================================================================================= test session starts ==============================================================================================
platform darwin -- Python 3.9.7, pytest-7.1.1, pluggy-1.0.0 -- ~/opt/anaconda3/envs/py39/bin/python
cachedir: .pytest_cache
rootdir: ~/vscode-projects/pycobertura, configfile: tox.ini
plugins: cov-3.0.0
collected 139 items
tests/test_cli.py::test_exit_codes PASSED [ 0%]
tests/test_cli.py::test_show__format_default PASSED [ 1%]
tests/test_cli.py::test_show__format_text PASSED [ 2%]
tests/test_cli.py::test_show__format_csv PASSED [ 2%]
tests/test_cli.py::test_show__format_csv_delimiter_semicolon PASSED [ 3%]
tests/test_cli.py::test_show__format_csv_delimiter_tab PASSED [ 4%]
tests/test_cli.py::test_show__format_markdown PASSED [ 5%]
tests/test_cli.py::test_show__format_html PASSED [ 5%]
tests/test_cli.py::test_show__format_json PASSED [ 6%]
tests/test_cli.py::test_show__format_yaml PASSED [ 7%]
tests/test_cli.py::test_show__output_to_file PASSED [ 7%]
tests/test_cli.py::test_diff__format_default PASSED [ 8%]
tests/test_cli.py::test_diff__format_text PASSED [ 9%]
tests/test_cli.py::test_diff__format_csv PASSED [ 10%]
tests/test_cli.py::test_diff__format_csv_delimiter_semicolon PASSED [ 10%]
tests/test_cli.py::test_diff__format_csv_delimiter_tab PASSED [ 11%]
tests/test_cli.py::test_diff__format_markdown PASSED [ 12%]
tests/test_cli.py::test_diff__format_json PASSED [ 12%]
tests/test_cli.py::test_diff__format_yaml PASSED [ 13%]
tests/test_cli.py::test_diff__output_to_file PASSED [ 14%]
tests/test_cli.py::test_diff__output_to_file__force_color PASSED [ 15%]
tests/test_cli.py::test_diff__format_text__with_color PASSED [ 15%]
tests/test_cli.py::test_diff__format_text__with_no_color PASSED [ 16%]
tests/test_cli.py::test_diff__format_markdown__with_color PASSED [ 17%]
tests/test_cli.py::test_diff__format_markdown__with_no_color PASSED [ 17%]
tests/test_cli.py::test_diff__format_json__with_color PASSED [ 18%]
tests/test_cli.py::test_diff__format_json__with_no_color PASSED [ 19%]
tests/test_cli.py::test_diff__format_yaml_with_color PASSED [ 20%]
tests/test_cli.py::test_diff__format_yaml_with_no_color PASSED [ 20%]
tests/test_cli.py::test_diff__format_html__no_source_on_disk PASSED [ 21%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/-tests/dummy-dummy/-] PASSED [ 22%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy-tests/--dummy/] PASSED [ 23%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy.zip-tests/dummy/dummy.zip--] PASSED [ 23%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy-with-prefix.zip-tests/dummy-dummy-with-prefix-] PASSED [ 24%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy-with-prefix.zip-tests/dummy/dummy.zip-dummy-with-prefix-] PASSED [ 25%]
tests/test_cli.py::test_diff__format_html__with_source[tests/dummy-tests/dummy] PASSED [ 25%]
tests/test_cli.py::test_diff__format_html__with_source[tests/dummy/dummy.zip-tests/dummy/dummy.zip] PASSED [ 26%]
tests/test_cli.py::test_diff__format_html__source PASSED [ 27%]
tests/test_cli.py::test_diff__format_html__source_is_default PASSED [ 28%]
tests/test_cli.py::test_diff__format_html__no_source PASSED [ 28%]
tests/test_cli.py::test_diff__same_coverage_has_exit_status_of_zero PASSED [ 29%]
tests/test_cli.py::test_diff__better_coverage_has_exit_status_of_zero PASSED [ 30%]
tests/test_cli.py::test_diff__worse_coverage_exit_status PASSED [ 30%]
tests/test_cli.py::test_diff__changes_uncovered_but_with_better_coverage_exit_status PASSED [ 31%]
tests/test_cli.py::test_diff__line_status PASSED [ 32%]
tests/test_cobertura.py::test_parse_path PASSED [ 33%]
tests/test_cobertura.py::test_parse_file_object PASSED [ 33%]
tests/test_cobertura.py::test_parse_string PASSED [ 34%]
tests/test_cobertura.py::test_invalid_coverage_report PASSED [ 35%]
tests/test_cobertura.py::test_version PASSED [ 35%]
tests/test_cobertura.py::test_line_rate PASSED [ 36%]
tests/test_cobertura.py::test_line_rate_by_class_file PASSED [ 37%]
tests/test_cobertura.py::test_branch_rate PASSED [ 38%]
tests/test_cobertura.py::test_branch_rate_by_class_file PASSED [ 38%]
tests/test_cobertura.py::test_missed_statements_by_class_file PASSED [ 39%]
tests/test_cobertura.py::test_list_packages PASSED [ 40%]
tests/test_cobertura.py::test_list_classes[tests/cobertura-generated-by-istanbul-from-coffeescript.xml-expected0] PASSED [ 41%]
tests/test_cobertura.py::test_list_classes[tests/cobertura.xml-expected1] PASSED [ 41%]
tests/test_cobertura.py::test_hit_lines__by_iterating_over_classes PASSED [ 42%]
tests/test_cobertura.py::test_missed_lines PASSED [ 43%]
tests/test_cobertura.py::test_total_statements PASSED [ 43%]
tests/test_cobertura.py::test_total_statements_by_class_file PASSED [ 44%]
tests/test_cobertura.py::test_total_misses PASSED [ 45%]
tests/test_cobertura.py::test_total_misses_by_class_file PASSED [ 46%]
tests/test_cobertura.py::test_total_hits PASSED [ 46%]
tests/test_cobertura.py::test_total_hits_by_class_file PASSED [ 47%]
tests/test_cobertura.py::test_class_file_source__sources_not_found PASSED [ 48%]
tests/test_cobertura.py::test_line_statuses PASSED [ 48%]
tests/test_cobertura.py::test_class_file_source__sources_found[tests/dummy.source1/coverage.xml-None-None] PASSED [ 49%]
tests/test_cobertura.py::test_class_file_source__sources_found[tests/dummy.source1/coverage.xml-tests/-dummy.source1/] PASSED [ 50%]
tests/test_cobertura.py::test_class_file_source__raises_when_no_filesystem PASSED [ 51%]
tests/test_cobertura.py::test_class_source_lines__raises_when_no_filesystem PASSED [ 51%]
tests/test_cobertura_diff.py::test_diff_class_source PASSED [ 52%]
tests/test_cobertura_diff.py::test_diff_total_misses PASSED [ 53%]
tests/test_cobertura_diff.py::test_diff_total_misses_by_class_file PASSED [ 53%]
tests/test_cobertura_diff.py::test_diff_line_rate PASSED [ 54%]
tests/test_cobertura_diff.py::test_diff_line_rate_by_class_file PASSED [ 55%]
tests/test_cobertura_diff.py::test_diff_same_report_different_source_dirs PASSED [ 56%]
tests/test_cobertura_diff.py::test_diff_total_hits PASSED [ 56%]
tests/test_cobertura_diff.py::test_diff_total_hits_by_class_file PASSED [ 57%]
tests/test_cobertura_diff.py::test_diff__has_all_changes_covered__some_changed_code_is_still_uncovered PASSED [ 58%]
tests/test_cobertura_diff.py::test_diff__has_better_coverage PASSED [ 58%]
tests/test_cobertura_diff.py::test_diff__has_not_better_coverage PASSED [ 59%]
tests/test_colorize.py::test_colorize PASSED [ 60%]
tests/test_extrapolate_coverage.py::test_extrapolate_coverage PASSED [ 61%]
tests/test_filesystem.py::test_filesystem_directory__file_not_found PASSED [ 61%]
tests/test_filesystem.py::test_filesystem_directory__returns_fileobject PASSED [ 62%]
tests/test_filesystem.py::test_filesystem_directory__with_source_prefix PASSED [ 63%]
tests/test_filesystem.py::test_filesystem_zip__file_not_found PASSED [ 64%]
tests/test_filesystem.py::test_filesystem_zip__returns_fileobject PASSED [ 64%]
tests/test_filesystem.py::test_filesystem_zip__with_source_prefix PASSED [ 65%]
tests/test_filesystem.py::test_filesystem_git PASSED [ 66%]
tests/test_filesystem.py::test_filesystem_git_integration PASSED [ 66%]
tests/test_filesystem.py::test_filesystem_git_integration__not_found PASSED [ 67%]
tests/test_filesystem.py::test_filesystem_git__git_not_found PASSED [ 68%]
tests/test_filesystem.py::test_filesystem_git_has_file_integration PASSED [ 69%]
tests/test_filesystem.py::test_filesystem_git_has_file_integration__not_found PASSED [ 69%]
tests/test_filesystem.py::test_filesystem_factory PASSED [ 70%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__top PASSED [ 71%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__bottom PASSED [ 71%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__middle PASSED [ 72%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__overlapping PASSED [ 73%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__2_contiguous_hunks_w_full_context_makes_1_hunk PASSED [ 74%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__2_distant_hunks_w_full_context_makes_2_hunk PASSED [ 74%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__no_valid_hunks_found PASSED [ 75%]
tests/test_imports.py::test_imports PASSED [ 76%]
tests/test_rangify.py::test_rangify_func__1 PASSED [ 76%]
tests/test_rangify.py::test_rangify_func__1_2 PASSED [ 77%]
tests/test_rangify.py::test_rangify_func__1_2_3 PASSED [ 78%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7 PASSED [ 79%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7_8 PASSED [ 79%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7_8_9 PASSED [ 80%]
tests/test_rangify.py::test_rangify_func__1_and_7_8_9 PASSED [ 81%]
tests/test_rangify.py::test_rangify_func__1_2_and_7_8_9 PASSED [ 82%]
tests/test_rangify.py::test_rangify_func__1_and_7 PASSED [ 82%]
tests/test_reconcile_lines.py::test_reconcile_lines__identical PASSED [ 83%]
tests/test_reconcile_lines.py::test_reconcile_lines__less_to_more PASSED [ 84%]
tests/test_reconcile_lines.py::test_reconcile_lines__more_to_less PASSED [ 84%]
tests/test_reporters.py::test_text_report PASSED [ 85%]
tests/test_reporters.py::test_text_report__with_missing_range PASSED [ 86%]
tests/test_reporters.py::test_text_report_delta__no_diff PASSED [ 87%]
tests/test_reporters.py::test_text_report_delta__colorize_True PASSED [ 87%]
tests/test_reporters.py::test_text_report_delta__colorize_True__with_missing_range PASSED [ 88%]
tests/test_reporters.py::test_text_report_delta__colorize_False PASSED [ 89%]
tests/test_reporters.py::test_html_report PASSED [ 89%]
tests/test_reporters.py::test_html_report__no_source_files_message PASSED [ 90%]
tests/test_reporters.py::test_text_report_delta__no_source PASSED [ 91%]
tests/test_reporters.py::test_html_report_delta__no_source PASSED [ 92%]
tests/test_reporters.py::test_html_report_delta PASSED [ 92%]
tests/test_reporters.py::test_html_report_delta__show_missing_False PASSED [ 93%]
tests/test_stringify.py::test_stringify_func__empty_bracket PASSED [ 94%]
tests/test_stringify.py::test_stringify_func__1_2 PASSED [ 94%]
tests/test_stringify.py::test_stringify_func__1_2_3 PASSED [ 95%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7 PASSED [ 96%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7_8 PASSED [ 97%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7_8_9 PASSED [ 97%]
tests/test_stringify.py::test_stringify_func__1_and_7_8_9 PASSED [ 98%]
tests/test_stringify.py::test_stringify_func__1_2_and_7_8_9 PASSED [ 99%]
tests/test_stringify.py::test_stringify_func__1_and_7 PASSED [100%]
---------------------------------------------------------------- generated xml file: /Users/michaelgross/vscode-projects/pycobertura/junit.xml -----------------------------------------------------------------
============================================================================================= 139 passed in 0.55s ==============================================================================================
(py39) $
But the prefix is missing in the pycobertura show
command, there we would need an --include
option instead of --source
...
I don't understand what changed with this PR. I thought the coverage.xml
file would contain filenames such as filename="pycobertura/cli.py"
instead of filename="cli.py"
. Is that not what changed?
Hi @aconrad
I try to explain it again. I moved to pytest.ini, but in principal it does not matter.
The output of pytest is correct, but the subsequent show
command not, because pytest
uses the coverage library, but pycobertura
does not (compare setup.cfg
install_requires
block to test_requirements.txt
, which actually should go in a test_requires
block in setup.cfg
):
(py39) $ pytest
====================================================================== test session starts =======================================================================
platform darwin -- Python 3.9.7, pytest-7.1.1, pluggy-1.0.0 -- ~/opt/anaconda3/envs/py39/bin/python
cachedir: .pytest_cache
rootdir: ~/vscode-projects/pycobertura, configfile: pytest.ini
plugins: cov-3.0.0
collected 139 items
tests/test_cli.py::test_exit_codes PASSED [ 0%]
tests/test_cli.py::test_show__format_default PASSED [ 1%]
tests/test_cli.py::test_show__format_text PASSED [ 2%]
tests/test_cli.py::test_show__format_csv PASSED [ 2%]
tests/test_cli.py::test_show__format_csv_delimiter_semicolon PASSED [ 3%]
tests/test_cli.py::test_show__format_csv_delimiter_tab PASSED [ 4%]
tests/test_cli.py::test_show__format_markdown PASSED [ 5%]
tests/test_cli.py::test_show__format_html PASSED [ 5%]
tests/test_cli.py::test_show__format_json PASSED [ 6%]
tests/test_cli.py::test_show__format_yaml PASSED [ 7%]
tests/test_cli.py::test_show__output_to_file PASSED [ 7%]
tests/test_cli.py::test_diff__format_default PASSED [ 8%]
tests/test_cli.py::test_diff__format_text PASSED [ 9%]
tests/test_cli.py::test_diff__format_csv PASSED [ 10%]
tests/test_cli.py::test_diff__format_csv_delimiter_semicolon PASSED [ 10%]
tests/test_cli.py::test_diff__format_csv_delimiter_tab PASSED [ 11%]
tests/test_cli.py::test_diff__format_markdown PASSED [ 12%]
tests/test_cli.py::test_diff__format_json PASSED [ 12%]
tests/test_cli.py::test_diff__format_yaml PASSED [ 13%]
tests/test_cli.py::test_diff__output_to_file PASSED [ 14%]
tests/test_cli.py::test_diff__output_to_file__force_color PASSED [ 15%]
tests/test_cli.py::test_diff__format_text__with_color PASSED [ 15%]
tests/test_cli.py::test_diff__format_text__with_no_color PASSED [ 16%]
tests/test_cli.py::test_diff__format_markdown__with_color PASSED [ 17%]
tests/test_cli.py::test_diff__format_markdown__with_no_color PASSED [ 17%]
tests/test_cli.py::test_diff__format_json__with_color PASSED [ 18%]
tests/test_cli.py::test_diff__format_json__with_no_color PASSED [ 19%]
tests/test_cli.py::test_diff__format_yaml_with_color PASSED [ 20%]
tests/test_cli.py::test_diff__format_yaml_with_no_color PASSED [ 20%]
tests/test_cli.py::test_diff__format_html__no_source_on_disk PASSED [ 21%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/-tests/dummy-dummy/-] PASSED [ 22%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy-tests/--dummy/] PASSED [ 23%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy.zip-tests/dummy/dummy.zip--] PASSED [ 23%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy-with-prefix.zip-tests/dummy-dummy-with-prefix-] PASSED [ 24%]
tests/test_cli.py::test_diff__format_html__with_source_prefix[tests/dummy/dummy-with-prefix.zip-tests/dummy/dummy.zip-dummy-with-prefix-] PASSED [ 25%]
tests/test_cli.py::test_diff__format_html__with_source[tests/dummy-tests/dummy] PASSED [ 25%]
tests/test_cli.py::test_diff__format_html__with_source[tests/dummy/dummy.zip-tests/dummy/dummy.zip] PASSED [ 26%]
tests/test_cli.py::test_diff__format_html__source PASSED [ 27%]
tests/test_cli.py::test_diff__format_html__source_is_default PASSED [ 28%]
tests/test_cli.py::test_diff__format_html__no_source PASSED [ 28%]
tests/test_cli.py::test_diff__same_coverage_has_exit_status_of_zero PASSED [ 29%]
tests/test_cli.py::test_diff__better_coverage_has_exit_status_of_zero PASSED [ 30%]
tests/test_cli.py::test_diff__worse_coverage_exit_status PASSED [ 30%]
tests/test_cli.py::test_diff__changes_uncovered_but_with_better_coverage_exit_status PASSED [ 31%]
tests/test_cli.py::test_diff__line_status PASSED [ 32%]
tests/test_cobertura.py::test_parse_path PASSED [ 33%]
tests/test_cobertura.py::test_parse_file_object PASSED [ 33%]
tests/test_cobertura.py::test_parse_string PASSED [ 34%]
tests/test_cobertura.py::test_invalid_coverage_report PASSED [ 35%]
tests/test_cobertura.py::test_version PASSED [ 35%]
tests/test_cobertura.py::test_line_rate PASSED [ 36%]
tests/test_cobertura.py::test_line_rate_by_class_file PASSED [ 37%]
tests/test_cobertura.py::test_branch_rate PASSED [ 38%]
tests/test_cobertura.py::test_branch_rate_by_class_file PASSED [ 38%]
tests/test_cobertura.py::test_missed_statements_by_class_file PASSED [ 39%]
tests/test_cobertura.py::test_list_packages PASSED [ 40%]
tests/test_cobertura.py::test_list_classes[tests/cobertura-generated-by-istanbul-from-coffeescript.xml-expected0] PASSED [ 41%]
tests/test_cobertura.py::test_list_classes[tests/cobertura.xml-expected1] PASSED [ 41%]
tests/test_cobertura.py::test_hit_lines__by_iterating_over_classes PASSED [ 42%]
tests/test_cobertura.py::test_missed_lines PASSED [ 43%]
tests/test_cobertura.py::test_total_statements PASSED [ 43%]
tests/test_cobertura.py::test_total_statements_by_class_file PASSED [ 44%]
tests/test_cobertura.py::test_total_misses PASSED [ 45%]
tests/test_cobertura.py::test_total_misses_by_class_file PASSED [ 46%]
tests/test_cobertura.py::test_total_hits PASSED [ 46%]
tests/test_cobertura.py::test_total_hits_by_class_file PASSED [ 47%]
tests/test_cobertura.py::test_class_file_source__sources_not_found PASSED [ 48%]
tests/test_cobertura.py::test_line_statuses PASSED [ 48%]
tests/test_cobertura.py::test_class_file_source__sources_found[tests/dummy.source1/coverage.xml-None-None] PASSED [ 49%]
tests/test_cobertura.py::test_class_file_source__sources_found[tests/dummy.source1/coverage.xml-tests/-dummy.source1/] PASSED [ 50%]
tests/test_cobertura.py::test_class_file_source__raises_when_no_filesystem PASSED [ 51%]
tests/test_cobertura.py::test_class_source_lines__raises_when_no_filesystem PASSED [ 51%]
tests/test_cobertura_diff.py::test_diff_class_source PASSED [ 52%]
tests/test_cobertura_diff.py::test_diff_total_misses PASSED [ 53%]
tests/test_cobertura_diff.py::test_diff_total_misses_by_class_file PASSED [ 53%]
tests/test_cobertura_diff.py::test_diff_line_rate PASSED [ 54%]
tests/test_cobertura_diff.py::test_diff_line_rate_by_class_file PASSED [ 55%]
tests/test_cobertura_diff.py::test_diff_same_report_different_source_dirs PASSED [ 56%]
tests/test_cobertura_diff.py::test_diff_total_hits PASSED [ 56%]
tests/test_cobertura_diff.py::test_diff_total_hits_by_class_file PASSED [ 57%]
tests/test_cobertura_diff.py::test_diff__has_all_changes_covered__some_changed_code_is_still_uncovered PASSED [ 58%]
tests/test_cobertura_diff.py::test_diff__has_better_coverage PASSED [ 58%]
tests/test_cobertura_diff.py::test_diff__has_not_better_coverage PASSED [ 59%]
tests/test_colorize.py::test_colorize PASSED [ 60%]
tests/test_extrapolate_coverage.py::test_extrapolate_coverage PASSED [ 61%]
tests/test_filesystem.py::test_filesystem_directory__file_not_found PASSED [ 61%]
tests/test_filesystem.py::test_filesystem_directory__returns_fileobject PASSED [ 62%]
tests/test_filesystem.py::test_filesystem_directory__with_source_prefix PASSED [ 63%]
tests/test_filesystem.py::test_filesystem_zip__file_not_found PASSED [ 64%]
tests/test_filesystem.py::test_filesystem_zip__returns_fileobject PASSED [ 64%]
tests/test_filesystem.py::test_filesystem_zip__with_source_prefix PASSED [ 65%]
tests/test_filesystem.py::test_filesystem_git PASSED [ 66%]
tests/test_filesystem.py::test_filesystem_git_integration PASSED [ 66%]
tests/test_filesystem.py::test_filesystem_git_integration__not_found PASSED [ 67%]
tests/test_filesystem.py::test_filesystem_git__git_not_found PASSED [ 68%]
tests/test_filesystem.py::test_filesystem_git_has_file_integration PASSED [ 69%]
tests/test_filesystem.py::test_filesystem_git_has_file_integration__not_found PASSED [ 69%]
tests/test_filesystem.py::test_filesystem_factory PASSED [ 70%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__top PASSED [ 71%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__bottom PASSED [ 71%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__middle PASSED [ 72%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__overlapping PASSED [ 73%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__2_contiguous_hunks_w_full_context_makes_1_hunk PASSED [ 74%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__2_distant_hunks_w_full_context_makes_2_hunk PASSED [ 74%]
tests/test_hunkify_coverage.py::test_hunkify_coverage__no_valid_hunks_found PASSED [ 75%]
tests/test_imports.py::test_imports PASSED [ 76%]
tests/test_rangify.py::test_rangify_func__1 PASSED [ 76%]
tests/test_rangify.py::test_rangify_func__1_2 PASSED [ 77%]
tests/test_rangify.py::test_rangify_func__1_2_3 PASSED [ 78%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7 PASSED [ 79%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7_8 PASSED [ 79%]
tests/test_rangify.py::test_rangify_func__1_2_3_and_7_8_9 PASSED [ 80%]
tests/test_rangify.py::test_rangify_func__1_and_7_8_9 PASSED [ 81%]
tests/test_rangify.py::test_rangify_func__1_2_and_7_8_9 PASSED [ 82%]
tests/test_rangify.py::test_rangify_func__1_and_7 PASSED [ 82%]
tests/test_reconcile_lines.py::test_reconcile_lines__identical PASSED [ 83%]
tests/test_reconcile_lines.py::test_reconcile_lines__less_to_more PASSED [ 84%]
tests/test_reconcile_lines.py::test_reconcile_lines__more_to_less PASSED [ 84%]
tests/test_reporters.py::test_text_report PASSED [ 85%]
tests/test_reporters.py::test_text_report__with_missing_range PASSED [ 86%]
tests/test_reporters.py::test_text_report_delta__no_diff PASSED [ 87%]
tests/test_reporters.py::test_text_report_delta__colorize_True PASSED [ 87%]
tests/test_reporters.py::test_text_report_delta__colorize_True__with_missing_range PASSED [ 88%]
tests/test_reporters.py::test_text_report_delta__colorize_False PASSED [ 89%]
tests/test_reporters.py::test_html_report PASSED [ 89%]
tests/test_reporters.py::test_html_report__no_source_files_message PASSED [ 90%]
tests/test_reporters.py::test_text_report_delta__no_source PASSED [ 91%]
tests/test_reporters.py::test_html_report_delta__no_source PASSED [ 92%]
tests/test_reporters.py::test_html_report_delta PASSED [ 92%]
tests/test_reporters.py::test_html_report_delta__show_missing_False PASSED [ 93%]
tests/test_stringify.py::test_stringify_func__empty_bracket PASSED [ 94%]
tests/test_stringify.py::test_stringify_func__1_2 PASSED [ 94%]
tests/test_stringify.py::test_stringify_func__1_2_3 PASSED [ 95%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7 PASSED [ 96%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7_8 PASSED [ 97%]
tests/test_stringify.py::test_stringify_func__1_2_3_and_7_8_9 PASSED [ 97%]
tests/test_stringify.py::test_stringify_func__1_and_7_8_9 PASSED [ 98%]
tests/test_stringify.py::test_stringify_func__1_2_and_7_8_9 PASSED [ 99%]
tests/test_stringify.py::test_stringify_func__1_and_7 PASSED [100%]
======================================================================== warnings summary ========================================================================
../../opt/anaconda3/envs/py39/lib/python3.9/site-packages/coverage/inorout.py:472
~/opt/anaconda3/envs/py39/lib/python3.9/site-packages/coverage/inorout.py:472: CoverageWarning: --include is ignored because --source is set (include-ignored)
self.warn("--include is ignored because --source is set", slug="include-ignored")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
----------------------------------------- generated xml file:~/vscode-projects/pycobertura/junit.xml ------------------------------------------
---------- coverage: platform darwin, python 3.9.7-final-0 -----------
Name Stmts Miss Cover Missing
-----------------------------------------------------------------
pycobertura/__init__.py 2 0 100%
pycobertura/cli.py 78 0 100%
pycobertura/cobertura.py 206 0 100%
pycobertura/filesystem.py 87 0 100%
pycobertura/reporters.py 192 0 100%
pycobertura/templates/__init__.py 0 0 100%
pycobertura/templates/filters.py 12 0 100%
pycobertura/utils.py 118 1 99% 38
-----------------------------------------------------------------
TOTAL 695 1 99%
Coverage XML written to file coverage.xml
================================================================= 139 passed, 1 warning in 0.91s =================================================================
(py39) $ pycobertura show coverage.xml
Filename Stmts Miss Cover Missing
--------------------- ------- ------ ------- ---------
__init__.py 2 0 100.00%
cli.py 78 0 100.00%
cobertura.py 206 0 100.00%
filesystem.py 87 0 100.00%
reporters.py 192 0 100.00%
utils.py 118 1 99.15% 38
templates/__init__.py 0 0 100.00%
templates/filters.py 12 0 100.00%
TOTAL 695 1 99.86%
We can make the warning disappear, if we want, because I think it is not relevant (it is a wrong warning).
Hi @aconrad
Sorry for the irritation, but it is really confusing :)
Unfortunately your observation is true: the problem remains. Although the output on the console is correct, the generated coverage.xml
is not. I fear we need to open an issue at https://github.com/nedbat/coveragepy, because https://github.com/nedbat/coveragepy/issues/578 cannot be fixed with the current PR nor the proposed fix.
Happy to merge this, but my understanding is that it's just moving code around, right?
Hi @aconrad
This will work now - I will still need to fix the formatting, but then we should be good to work.
The hint from @nedbat to drop pytest-cov
was key :)
@aconrad Do we need an update on the CHANGES.md
as well?
@aconrad Do we need an update on the
CHANGES.md
as well?
Hmm, good question. I think this PR is part of dropping py36 and supporting py37 and onward. This change is already documented and where you've been credited, this PR is just a "bug" that needed to be fixed that we hadn't addressed the first time around.
So no, I don't think we need to document it per se. 👍
setup.cfg
topytest.ini
pytest-cov