Recently I have working on a project that allow to work on Go projects out-of-box using a Docker image.
It contains preinstalled tools for developing, mocking, formatting, linting, building, testing and documenting Go projects.
For mocking Go interfaces, I'm using the standard and classic mockgen
tool in reflect mode. One of annoying thing about that tool is command line invocations.
I have scripted that to automatically and recursively detect all Go interfaces. It excludes _test.go
files, mocks
directories and the package main
.
Go module detection is based on the go env GOMOD
command invocation. All mocks
are generated under the mocks directory for given Go package.
For me it works well. But I may have miss something. And because of that, I want to ask you for a small feedback. In advance, I appreciate it for any comments :)
The go-mock
script that covers this topic: https://gitlab.com/tymonx/docker-go/-/blob/master/scripts/go-mock
Project site: https://gitlab.com/tymonx/docker-go
I also hope, that it may be useful for someone ;)
Top comments (1)
Your script is awesome! Thank you so much for sharing that