I am running tests and collecting coverage with Vitest configured to use the c8
coverage library. This seems to be working because when the tests finish, I get a coverage report in the terminal and a directory named coverage
is created with all sorts of files I can look at in a browser:
$ ls -la coverage/
total 712
drwxr-xr-x 14 shawn staff 448 Apr 10 11:08 .
drwxr-xr-x 24 shawn staff 768 Apr 10 11:23 ..
-rw-r--r-- 1 shawn staff 5394 Apr 10 11:08 base.css
-rw-r--r-- 1 shawn staff 2655 Apr 10 11:08 block-navigation.js
-rw-r--r-- 1 shawn staff 108109 Apr 10 11:08 clover.xml
-rw-r--r-- 1 shawn staff 190921 Apr 10 11:08 coverage-final.json
drwxr-xr-x 4 shawn staff 128 Apr 10 11:08 examples
-rw-r--r-- 1 shawn staff 445 Apr 10 11:08 favicon.png
-rw-r--r-- 1 shawn staff 5802 Apr 10 11:08 index.html
-rw-r--r-- 1 shawn staff 676 Apr 10 11:08 prettify.css
-rw-r--r-- 1 shawn staff 17590 Apr 10 11:08 prettify.js
-rw-r--r-- 1 shawn staff 138 Apr 10 11:08 sort-arrow-sprite.png
-rw-r--r-- 1 shawn staff 6181 Apr 10 11:08 sorter.js
drwxr-xr-x 11 shawn staff 352 Apr 10 11:08 src
My next step is to send this coverage information along to Coveralls to get a coverage badge for my README. For this part, I'm using the GitHub Action provided by Coveralls for this use-case: coverallsapp/github-action@v2
This doesn't work, however: it seems the action is not finding the coverage report since it says "Nothing to report".
Here are the relevant parts of the deployment workflow:
[…]
test:
[…]
steps:
[…]
- name: Test
run: npm test
env: […]
- name: Report Coveralls
uses: coverallsapp/github-action@v2
The npm test
part creates the coverage
directory (it basically just runs vitest run --coverage
).
So why is Coveralls not finding the coverage report? Should I be configuring c8
to produce a different format of output? Do I need extra configuration when calling coverallsapp/github-action@v2
? Should I be using istanbul
instead of c8
, or perhaps something else? Should I be using CodeDov instead of Coveralls, or perhaps something else?
Nothing in your question tells the action wouldn't work perfectly fine.
Only the coverage data is not found. You need to provide the correct location to the action otherwise it can't work.
Find this explained in the Coveralls Github Action read-me.
You have to use at least one coverage format that is compatible with the coverage reporter used by that Coveralls Github Action.
Showing the HTML coverage directory and insisting in your question text is not enough to actually make it properly configured.
As you haven't asked anything more specifically, this is the answer.
Encouraging you to do even more wild guesses next to those you outline already in your question also does not look useful to me.
My suggestion instead is to focus on the clover.xml file and tell the Coveralls action where to find it. Technically, you can use any other supported format, too.
Correction: The Coveralls Github Action does not yet support clover.xml format.