DEV Community

Cover image for Junit Badge For Git Project

Posted on

Junit Badge For Git Project

What are badges?

They look like this Image description

Now lets create a custom badge for your git project

The Plugins to update the JUnit test number seem not working very well specially if you do not have JaCOCO , here is a simple work around

1) Create a GIST file

2)Get your GIST ID

3)Create GIT TOken with GIST permission

4)Add The token to your repo secret for action

5)Create shell script


# Assuming Maven generates XML test reports in the "target/surefire-reports" directory
# Print current directory
echo "Current directory: $(pwd)"

xml_files=$(find "$(pwd)" -name "TEST-*.xml")

# Concatenate all XML files and count the occurrences of "<testcase" using grep
test_count=$(cat $xml_files | grep -c "<testcase")
echo "Total number of tests: $test_count"

echo "GIST_ID: $GIST_ID"

json_data='{"schemaVersion": "1", "label": "testcount", "message": "'$test_count'", "color": "orange"}'

echo "JSON data: $json_data"

# Prevent any output from the script
exec > /dev/null
exec 2>&1

# Create or update the Gist with the test count
curl -s -X PATCH \
     -H "Authorization: token $GIST_TOKEN" \
     -H "Content-Type: application/vnd.github+json" \
     -d '{"files":{"test.json":{"content": "{\"schemaVersion\": 1,\"label\": \"testcount\", \"message\": \"'$test_count'\", \"color\":\"orange\"}" }}}' \
Enter fullscreen mode Exit fullscreen mode

7)Add script to your workflow

      - name: Upload test custom
          GIST_TOKEN: ${{ secrets.GIST_TOKEN }}
          GIST_ID: ${{ secrets.GIST_ID }}
        run: bash
Enter fullscreen mode Exit fullscreen mode

8)Create the Shield badge from the raw gist file{gitusername}/{gist_id}/raw/{file_name}

Top comments (0)