Comments (4)
So the problem seems to be in this section of the code
# cobertura sometimes provides the sources for the measurements
# within it. If we have that we outta use it
sources = xml_document.findall('sources/source')
sources = [source.text for source in sources]
classes = [class_tree
for class_tree in xml_document.findall(".//class")
or []]
classes = (
[clazz for clazz in classes if
src_abs_path in [
self._to_unix_path(
os.path.join(
source.strip(),
clazz.get('filename')
)
) for source in sources]]
or
[clazz for clazz in classes if
self._to_unix_path(clazz.get('filename')) == src_abs_path]
or
[clazz for clazz in classes if
self._to_unix_path(clazz.get('filename')) == src_rel_path]
)
We are basically hitting a NPE of sorts when hitting this statement
[clazz for clazz in classes if
src_abs_path in [
self._to_unix_path(
os.path.join(
source.strip(),
clazz.get('filename')
)
) for source in sources]]
So some element of the sources array is None
What this tells me is that there is something missing in the cobertura xml that we assume is there. Is there anyway you can share it here?
from diff_cover.
Hi Bachmann1234,
Thanks for your quick answer!
There is an empty source element at the beginning of the xml file:
<coverage line-rate="0.178" branch-rate="0.348" version="1.9" timestamp="1545037553" lines-covered="675" lines-valid="3787" branches-covered="260" branches-valid="747">
<sources>
<source></source>
</sources>
I removed the empty element then it worked. Is it possible for diff-cover remove the check on the empty elements?
from diff_cover.
I'll look into it this week if I can. Should not be a hard change
from diff_cover.
Give https://pypi.org/project/diff-cover/1.0.6/ a shot
from diff_cover.
Related Issues (20)
- Blank lines not factored into range HOT 2
- Few tests fails in rmtree HOT 6
- 7.3.1: test suite is failing in `tests/test_integration.py::TestDiffQualityIntegration::test_html_with_external_css` unit HOT 2
- Make chardet a optional dependency HOT 1
- In cpp file,The coverage of changed lines is not being counted HOT 2
- any ways to get all measured lines' numbers from json report HOT 2
- Feature request — Invert output to find flaky tests and help determine test failures HOT 1
- does this tool support C++ opencppcoverage? cppcoverage has html, cobertura reports. HOT 1
- urgent!! work environment!!No lines with coverage information in this diff. HOT 2
- new Github action for diff-cover HOT 1
- There is a folder code that cannot be counted. It has been analyzed for a long time, please help HOT 1
- 5 tests fail HOT 2
- Package has classifier "License :: Other/Proprietary License" - raising licensing flags for Sonatype HOT 3
- Enhancing Report Visualization in 'diff-cover' Project for Improved Code Analysis HOT 2
- 7.7.0: pytest is failing in `tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_file_does_not_exist` unit HOT 33
- Support ruff for quality checking HOT 1
- diff everything on removal HOT 11
- Diff between two coverage files instead of coverage file from branch HOT 2
- Running diff-quality with a tool which is not installed gives FIleNotFoundError rather than helpful "<tool> is not installed" error message HOT 2
- Add support for Pyright as a quality-checking tool HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from diff_cover.