Codecov report – missing files

Description

We’ve been recently looking at our code coverage in more detail, and we’ve noticed there are several files in our subdirectories are missing.

For example files:
eatclub/batcave/serializers.py
eatclub/batcave/views.py

After looking through similar issues (Missing files in codecov (but not in report) - #8 by tom), we’ve noticed that our coverage report doesn’t include the root “eatclub/” directory in its file paths, so we added:

fixes:
  - "::eatclub/"

to our codecov.yaml file.

However, this doesn’t seem to have fixed the problem – here’s a build on a commit which has updated codecov.yaml but the files are still missing in the report: https://codecov.io/gh/eatclub/web/commit/1bac5cc7f399910064b93a5ece565e03f976563b/build.
We also tried to disable Codecov’s default path fixing, to no avail: https://codecov.io/gh/eatclub/web/commit/eb710f487248face7138c01854a3a6c955e17eb9/build

Repository

The repository is private.

CI/CD

We’re using Jenkins.

Uploader

We’re using the bash uploader.

Commit SHAs

Updated codecov yaml: 38d425b237a58fb1ac3c5cce4ba3fbf6dfec32fa
Updated codecov yaml with no default path fixing: a0c67245b01e079038fdd8b277095eb2473fb058

Codecov YAML

codecov:
  branch: development
  disable_default_path_fixes: false
coverage:
  status:
    project: off
    patch:
      default:
        target: 100
        if_not_found: error
fixes:
  - "::eatclub/"

Hi @magdalena, what happens if you try batcave/::eatclub/batcave/?

Hi Tom, thanks, that seems to be fixing the issue.

Is there any way to handle it on the root directory level?
We have several directories in which this happens, so I need to manually cross-reference the report and CodeCov results to find discrepancies, and obviously this doesn’t scale well for large applications, and will need to be done manually when adding new directories.

I haven’t tried it myself, but what if you did ./::eatclub/?

@tom Sadly, that doesn’t work.

So far the only thing that worked for us was manually specifying it for the problematic directories, but it’s hard to say when there will be new directories with this issue.

Hi @magdalena, unfortunately, I don’t have a solution for you here, but this is probably very irritating to have to do for every directory. I’ve followed this up with the product team to see what we can do in the future to productize. I’m going to mark this as the solution as it does solve for the issue, but I’ll post back here if we find a better solution.

@magdalena @tom I recently also ran into this issue and was able to resolve it, and I think I have some insights on the problem. The main additional thing I had to do that hasn’t been mentioned in other discussion was that I explicitly disabled the default path fixing.

The repo and PR in which I dealt with this is here. Describing my observations in a little more detail:

Firstly, similar to the cases described in #825 Missing files in codecov (but not in report), it was happening where the missing files shared names with other files in other subdirectories. It does seem like the automatic path resolution has some problem where it confuses files with the same name.

Secondly, adding the missing directory was needed. In my case, that was applying "::erdantic/".

Thirdly, even when I had the correct manual fix applied, I still wasn’t seeing the missing files. My hypothesis is that the default path fixing was still happening and caused the filename aliasing issue. This was resolved when I added

codecov:
  disable_default_path_fixes: yes

As a note, I think the code snippet at the bottom of this doc page mistakenly says false instead of true or `yes.

2 Likes