{"id":20414506,"url":"https://github.com/codecov/basic-test-results","last_synced_at":"2026-03-10T05:02:40.761Z","repository":{"id":258695948,"uuid":"870167473","full_name":"codecov/basic-test-results","owner":"codecov","description":"GitHub Actions to collect test results and emit a PR comment about the test status.","archived":false,"fork":false,"pushed_at":"2024-10-29T14:56:42.000Z","size":133,"stargazers_count":7,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-18T22:27:44.708Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codecov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-09T14:59:52.000Z","updated_at":"2025-10-24T14:35:49.000Z","dependencies_parsed_at":"2024-11-15T12:16:47.913Z","dependency_job_id":null,"html_url":"https://github.com/codecov/basic-test-results","commit_stats":null,"previous_names":["codecov/basic-test-results"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/codecov/basic-test-results","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecov%2Fbasic-test-results","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecov%2Fbasic-test-results/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecov%2Fbasic-test-results/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecov%2Fbasic-test-results/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codecov","download_url":"https://codeload.github.com/codecov/basic-test-results/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecov%2Fbasic-test-results/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30325598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T06:10:41.971Z","updated_at":"2026-03-10T05:02:40.725Z","avatar_url":"https://github.com/codecov.png","language":null,"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/Codecov umbrella only.png\" alt=\"Codecov Logo\" width=100 /\u003e\n\u003c/p\u003e\n\n\nBasic Test Results lets you easily find test run failures as a pull request comment. \nAll analysis is done locally on your CI. \nThis is a standalone test results action that does not include code coverage \nor other metrics. \nUsing this action does not require signing up to Codecov or any other service.\n\n# 🏛️ Codecov - The Leading Test Coverage Solution \n\nIf you’re interested in uncovering test coverage reporting, \ntest analytics (including flake detection), \nand more code health insights for your repo, check out Codecov. \nFree forever for open source and public repos. \nLearn more at [https://about.codecov.io/](https://about.codecov.io/).\n\n\n# 📢 Have thoughts?\n\nReach out to us on [Github](https://github.com/codecov/basic-test-results/issues).\n\n# 🛠️ Setup\n\nThis action currently works only with the JUnit XML format. The action processes a JUnit XML test report locally and outputs results as a formatted PR comment.\n\n## Arguments\n\n| Input  | Description | Required |\n| :---       |     :---     |    :---:   |\n| github-token | The secrets.GITHUB_TOKEN to be able to interact with the current PR and comment on it. | Required |\n| directory | Directory to search for test result reports. Will run test processing on all files in the directory. | Optional |\n| disable-search | Disable search for test result files. This is helpful when specifying what files you want to run test report processing with the --file option. | Optional |\n| exclude | Directories to exclude from search. | Optional |\n| file | Path to the JUnit file to run test result processing. | Optional |\n| version | Specify which version of the Codecov CLI should be used. Defaults to `latest`. | Optional |\n\n## Example Usage\n\n### Basic Usage for Single File\n\n```\nsteps:\n  - ...\n  - name: Test with Pytest exporting JUnit file\n    run: |\n      pytest --cov --junitxml=junit.xml\n  - name: Run Basic Test Results Action\n    uses: codecov/basic-test-results@v1\n    with:\n      github-token: ${{ secrets.GITHUB_TOKEN }}\n      file: junit.xml\n      disable-search: true\n```\n\n### Aggregating Multiple Test Files\n\nIf the CI includes multiple test files that we want to output one report for,\nthen the files will need to be uploaded as an artifact\nand then downloaded into a directory.\n\n```\njobs:\n  run-python-stuff:\n    - ...\n    - name: Test with Pytest exporting JUnit file\n      run: |\n        pytest --cov --junitxml=junit.xml\n    - name: Upload artifacts for test-results-processing\n      if: ${{ !cancelled() \u0026\u0026 github.event_name == 'pull_request'}}\n      uses: actions/upload-artifact@v4\n      with:\n        name: python-junit.xml\n        path: junit.xml\n\n  run-jest-stuff:\n    - ...\n    - name: Test with Jest exporting JUnit file\n      run: |\n        JEST_JUNIT_OUTPUT_NAME=\"junit.xml\" jest\n    - name: Upload artifacts for test-results-processing\n      if: ${{ !cancelled() \u0026\u0026 github.event_name == 'pull_request'}}\n      uses: actions/upload-artifact@v4\n      with:\n        name: jest-junit.xml\n        path: junit.xml\n\n  run-codecov-basic-test-results:\n    runs-on: ubuntu-latest\n    needs: [run-python-stuff, run-jest-stuff]\n    steps:\n      - name: Download all test results\n        uses: actions/download-artifact@v4\n        with:\n          pattern: '*junit.xml'\n          path: 'test_results'\n          merge-multiple: true\n      - name: Run Basic Test Results Action\n        uses: codecov/basic-test-results@v1\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          directory: 'test_results'\n```\n\n\n# ❓FAQ\n\n## How should the comment show up?\n\n`basic-test-results` should create (or update an existing) comment when it is triggered. \n![image](https://github.com/user-attachments/assets/40fd768e-a53d-48c4-9b1d-3d31b2c81643)\n\nThe assumption is that there will be one comment per PR,\nand that it gets updated on every PR push update.\nIf you see multiple messages, that means that there was a race condition\nwhen creating the first message.\n\n\nTo avoid having the race condition, please ensure that you run\n`basic-test-results` only once in your CI.\nYou can call `basic-test-results` for multiple JUnit files;\nplease see [this section](#aggregating-multiple-test-files) on how to set this up.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecov%2Fbasic-test-results","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodecov%2Fbasic-test-results","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecov%2Fbasic-test-results/lists"}