{"id":17882168,"url":"https://github.com/nao1215/hottest","last_synced_at":"2025-09-10T04:08:28.614Z","repository":{"id":209185477,"uuid":"723396935","full_name":"nao1215/hottest","owner":"nao1215","description":"hottest - user-friendly 'go test' that extracts error messages.","archived":false,"fork":false,"pushed_at":"2024-08-20T15:11:02.000Z","size":748,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T11:04:57.394Z","etag":null,"topics":["command-line","command-line-tool","github-actions","go","golang","test","unit-testing","user-friendly"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nao1215.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"nao1215"}},"created_at":"2023-11-25T14:38:49.000Z","updated_at":"2024-08-20T15:10:58.000Z","dependencies_parsed_at":"2024-01-03T07:27:00.972Z","dependency_job_id":"6b288b06-3e3b-49a5-947d-155b1d1efb83","html_url":"https://github.com/nao1215/hottest","commit_stats":null,"previous_names":["nao1215/hottest"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nao1215%2Fhottest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nao1215%2Fhottest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nao1215%2Fhottest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nao1215%2Fhottest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nao1215","download_url":"https://codeload.github.com/nao1215/hottest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244959443,"owners_count":20538625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["command-line","command-line-tool","github-actions","go","golang","test","unit-testing","user-friendly"],"created_at":"2024-10-28T12:48:29.075Z","updated_at":"2025-03-22T12:31:32.577Z","avatar_url":"https://github.com/nao1215.png","language":"Go","funding_links":["https://github.com/sponsors/nao1215"],"categories":[],"sub_categories":[],"readme":"[![LinuxUnitTest](https://github.com/nao1215/hottest/actions/workflows/linux_test.yml/badge.svg)](https://github.com/nao1215/hottest/actions/workflows/linux_test.yml)\n[![MacUnitTest](https://github.com/nao1215/hottest/actions/workflows/mac_test.yml/badge.svg)](https://github.com/nao1215/hottest/actions/workflows/mac_test.yml)\n[![WindowsUnitTest](https://github.com/nao1215/hottest/actions/workflows/windows_test.yml/badge.svg)](https://github.com/nao1215/hottest/actions/workflows/windows_test.yml)\n[![reviewdog](https://github.com/nao1215/hottest/actions/workflows/reviewdog.yml/badge.svg)](https://github.com/nao1215/hottest/actions/workflows/reviewdog.yml)\n![Coverage](https://raw.githubusercontent.com/nao1215/octocovs-central-repo/main/badges/nao1215/hottest/coverage.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/nao1215/hottest)](https://goreportcard.com/report/github.com/nao1215/hottest)\n## What is hottest ?\nThe hottest part in unit testing is the **error messages**.\n  \nThe `hottest` command extracts error messages from the unit test logs, saving the effort of searching for error messages.  It's usage is the same as the `go test` command. \n![example](./doc/image/demo.gif)\n\nThe `hottest` command is the wrapper for 'go test'. It adds the \"-v\" option to the 'go test' options provided by the user and executes the tests. Successful test results are represented by green \".\", while failed tests are represented by red \".\".\n  \nUpon completion of the tests, it displays information about the failed tests and summarizes the test results.\n\n\n## Installation\n### Use go install\n```bash\ngo install github.com/nao1215/hottest@latest\n```\n\n### Use Homebrew\n```bash\nbrew install nao1215/tap/hottest\n```\n\n## Usage\n```bash\nUsage:\n  hottest [arguments]\n          ※ The arguments are the same as 'go test'.\nExample:\n  hottest -cover ./... -coverprofile=cover.out\n```\n\n### CLI example\nExample:\n```bash\n$ hottest ./...\n...............................................................\n[Error Messages]\n --- FAIL: TestPlainText (0.00s)\n     --- FAIL: TestPlainText/success_PlainText() (0.00s)\n         markdown_test.go:25: value is mismatch (-want +got):\n               []string{\n             -  \"Hllo\",\n             +  \"Hello\",\n               }\nResults: 61/2/0 (ok/ng/skip, 242.172244ms, by hottest v0.0.2)\n```\n\n### On GitHub Actions\n:octocat: GitHub Actions for hottest is available at [nao1215/actions-hottest](https://github.com/nao1215/actions-hottest)\n\nSample workflow:\n```yml\nname: SampleTest\n\non:\n  push:\n\njobs:\n  sample_test:\n    name: sample test\n\n    strategy:\n      matrix:\n        platform: [ubuntu-latest]\n\n    runs-on: ${{ matrix.platform }}\n\n    steps:\n      - uses: actions/checkout@v4\n\n      - uses: actions/setup-go@v4\n        with:\n          go-version: \"1\"\n          check-latest: true\n\n      - name: Download dependencies\n        run: go mod download\n\n      - uses: nao1215/actions-hottest@v1\n        with:\n          # This argument is same as `go test` command.\n          args: '-cover -coverpkg=./... -coverprofile=coverage.out ./...'\n```\n\n- Set `args` argument same as `go test` command.  \n- `nao1215/actions-hottest` requires the permission to comment on pull requests in order to store test results as PR comments. Please enable the following settings:\n  - [GitHub Repository Top Page] -\u003e [Settings] -\u003e [Actions] -\u003e [General] -\u003e [Read and write permissions] = ON\n- The old PR comments created by `hottest` will be deleted when creating a new PR comment.\n\n\u003e [!IMPORTANT]  \n\u003e Please remember to include 'go mod download' in the workflow. If you forget, the hottest command may experience long waiting times when running tests, and the tests may not complete.\n  \n#### Success case\n![success](doc/image/success2.png)\n![github-actions-success](doc/image/github_actions_success.png)\n\n#### Failure case\n![failure](doc/image/fail2.png)\n![github-actions-fail](doc/image/github_actions_fail.png)\n\n## Alternative tools\n- [rakyll/gotest](https://github.com/rakyll/gotest): go test with colors\n- [kyoh86/richgo](https://github.com/kyoh86/richgo): Enrich `go test` outputs with text decorations.\n- [gotestyourself/gotestsum](https://github.com/gotestyourself/gotestsum): 'go test' runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results.\n\n## Hottest does not get coverage\nI considered adding a feature to aggregate coverage information during the development of `hottest`. However, I have decided that it is better to use the excellent coverage aggregation functionality provided by [k1LoW/octocov](https://github.com/k1LoW/octocov). Therefore, `hottest` will not add any features related to coverage.\n\n## Contributing\nFirst off, thanks for taking the time to contribute! If you feel that the hottest command is not working properly, please let me know by sending me `go test -v . /... -json` log please.\n  \nContributions are not only related to development. For example, GitHub Star motivates me to develop!\n[![Star History Chart](https://api.star-history.com/svg?repos=nao1215/hottest\u0026type=Date)](https://star-history.com/#nao1215/hottest\u0026Date)\n\n\n\n## LICENSE\n[BSD 3-Clause License](./LICENSE)\n  \nSome portions of the code in this file were forked from [rakyll/gotest](https://github.com/rakyll/gotest). The `gotest` is licensed under the BSD 3-Clause \"New\" or \"Revised\" License. Full license text is available in [main.go](./main.go)\n\n## Origin of the Name\nThe `hottest` is a command developed with inspiration from [rakyll/gotest](https://github.com/rakyll/gotest). While `gotest` adds color to error logs, as the volume of unit tests increases, it becomes challenging to locate error messages with color alone.\n\nTo solve this issue, the idea emerged to make a slight improvement to `gotest`, leading to the development of `hottest`. Advancing just one step from 'g' takes you to 'h'.   \n  \nI liked \"hotest,\" but to avoid being corrected for a spelling mistake, I chose \"hottest.\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnao1215%2Fhottest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnao1215%2Fhottest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnao1215%2Fhottest/lists"}