{"id":19312493,"url":"https://github.com/exaexa/covtools.jl","last_synced_at":"2026-01-29T23:33:21.811Z","repository":{"id":149763653,"uuid":"342818241","full_name":"exaexa/covtools.jl","owner":"exaexa","description":"commandline tools for exploring test coverage of julia projects","archived":false,"fork":false,"pushed_at":"2021-02-27T09:41:16.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-07T02:42:26.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","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/exaexa.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":"2021-02-27T09:28:57.000Z","updated_at":"2021-03-16T14:49:44.000Z","dependencies_parsed_at":"2023-04-25T17:32:45.453Z","dependency_job_id":null,"html_url":"https://github.com/exaexa/covtools.jl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/exaexa/covtools.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fcovtools.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fcovtools.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fcovtools.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fcovtools.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exaexa","download_url":"https://codeload.github.com/exaexa/covtools.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exaexa%2Fcovtools.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28890367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"ssl_error","status_checked_at":"2026-01-29T21:06:42.160Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-10T00:35:00.482Z","updated_at":"2026-01-29T23:33:21.793Z","avatar_url":"https://github.com/exaexa.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# covtools.jl\n\nCommandline tools for exploring test coverage of Julia stuff. This is useful if you don't have a code-coverage-displaying IDE and refuse to wait for CI to show you your lovely 100% coverages in codecov.\n\n## How-to\n\n### 1. Run the tests with `--coverage`\n\n```\n$ cd YourPackage\n$ find . -name '*.cov' -exec rm {} \\;   # remove the previous coverage files; `git clean -f` might be sufficient too.\n$ julia\npkg] dev --local .                    # develop YourPackage locally (this only needs to be done once per project)\npkg] test --coverage YourPackage      # run the tests and output up-to-date coverage files\n```\n\nthis should generate a lot of `.cov` files scattered around your normal source files.\n\n### 2. Use `coverstat.jl` to get testing statistics\n```\n$ coverstat.jl src/\n       7      75      68  90.67% (TOTAL)\n       7      75      68  90.67% src\n               1       1 100.00% src/YourPackage.jl\n       5      57      52  91.23% src/readinput.jl\n               4       4 100.00% src/structs.jl\n              11      11 100.00% src/utils.jl\n       2       2           0.00% src/version.jl\n```\n(The columns are in fact colored, it looks much better in the commandline. The first column is \"untested lines\", then \"total lines\", \"tested lines\", \"percent coverage\" and file/subdirectory name.)\n\n### 3. Use `cover.jl` to find untested lines\nIf you find a problematic file, you can use `cover.jl` to find the lines that need testing:\n```\n$ cover.jl src/readinput.jl\n-\n-      const X = Y\n- \n1      testedFunctionCall()\n0 ***  untestedFunctionCall()\n0 ***  moreUntestedCode\n```\n\n(The first column is separated by a tab and contains either `-` for lines irrelevant for testing coverage, `0` (highlighted with `***`) for lines that were not executed in tests, and a number of executions for lines that were tested.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexaexa%2Fcovtools.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexaexa%2Fcovtools.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexaexa%2Fcovtools.jl/lists"}