Skip to content

Docker image includes golang coverage tools for testing.

License

Notifications You must be signed in to change notification settings

appleboy/golang-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

golang-testing

Golang Testing

Docker image includes golang coverage tools for testing.

Build Status codecov Go Report Card

Feature

The docker images includes the following golang tools.

  • go-junit-report Convert go test output to junit xml
  • gocov Coverage testing tool
  • gocov-xml XML (Cobertura) export
  • golint This is a linter for Go source code. (Golint requires Go 1.6 or later.)
  • glide Package Management for Golang
  • govendor Package Management for Golang
  • cloc Count Lines of Code.
  • blackfriday-tool a markdown processor for Go.

Install

Copy coverage.sh to /usr/local/bin/coverage and change permission.

$ curl https://raw.githubusercontent.com/appleboy/golang-testing/1.0.2/coverage.sh -o $GOPATH/bin/coverage
$ chmod +x $GOPATH/bin/coverage

Usage

coverage tool document:

Generate test coverage statistics for Go packages.

  -- Command Flag --
  -h | --help                    Display this help and exit
  -m | --mode                    Set coverage mode. default is "set" (set|count|atomic)
  -d | --dir                     Set store coverage folder (default is ".cover")

  -- Command Action --
  tool                           Install go dependency tools like gocov or golint.
  testing                        Run go testing for all packages
  coverage                       Generate coverage report for all packages
  junit                          Generate coverage xml report for junit plugin
  lint                           Generate Lint report for all packages
  vet                            Generate Vet report for all packages
  cloc                           Generate Count Lines of Code report for all files
  all                            Execute coverage、junit、lint、vet and cloc report

Contribute and source at https://github.com/appleboy/golang-testing

Run with docker

Pull the latest golang-testing docker image.

$ docker pull appleboy/golang-testing

docker command

Run testing in single docker command.

$ export PROJECT_PATH=/go/src/github.com/appleboy/golang-testing
$ docker run --rm \
    -v $(PWD):$PROJECT_PATH \
    -w=$PROJECT_PATH \
    appleboy/golang-testing \
    sh -c "coverage all"

Change PROJECT_PATH variable. Replace github.com/appleboy/golang-testing with your github path.

docker-compose command

Please see docker/docker-compose.yml example file. Run the following command.

$ export PROJECT_PATH=/go/src/github.com/appleboy/golang-testing
$ docker-compose -f docker/docker-compose.yml run golang-testing \
  sh -c "coverage all"

Demo

$ git clone https://github.com/appleboy/golang-testing.git
$ cd golang-testing
$ export PROJECT_PATH=/go/src/github.com/appleboy/golang-testing
$ docker run --rm \
    -v $(PWD):$(PROJECT_PATH) \
    -w=$(PROJECT_PATH) \
    appleboy/golang-testing \
    sh -c "make update && coverage all"
# or docker-compose command
$ docker-compose -f docker/docker-compose.yml \
    run golang-testing

Screenshot

Testing