小能豆

mockgen not creating mocks

go

Here’s my folder structure:

demo/
|-- go.mod
|-- main.go
|-- interfaces/
|   |-- interfaces.go
|-- mocks/

This is my go.mod file

go 1.20

require (
    github.com/golang/mock v1.6.0 // indirect
    golang.org/x/mod v0.4.2 // indirect
    golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect
    golang.org/x/tools v0.1.1 // indirect
    golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
)

Here’s my interfaces.go

package interfaces

type MyInterface interface {
    DoSomething() error
    GetValue() int
}

When i tried to run the mockgen command ,it is not creating the mocks and instead giving me this help description: mockgen has two modes of operation: source and reflect.Source mode generates mock interfaces from a source file. It is enabled by using the -source flag. Other flags that may be useful in this mode are -imports and -aux_files.

https://manpages.org/mockgen

I ran the following command: mockgen -destination=mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface

How to use the mockgen command correctly?


阅读 80

收藏
2023-12-20

共1个答案

小能豆

It looks like you are using the correct command to generate mocks with mockgen. The issue might be related to the directory structure and how mockgen expects the import paths.

Here’s the corrected command based on your provided folder structure:

mockgen -destination=demo/mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface

Make sure you run this command from the root of your project (demo directory in your case). This command tells mockgen to generate mocks for the MyInterface interface in the demo/interfaces package and save the generated code in demo/mocks/mock_myinterface.go.

If you still encounter issues, you might want to ensure that mockgen is properly installed and available in your PATH. You can install it using the following command:

go install github.com/golang/mock/mockgen@latest

After installation, try running the mockgen command again.

Additionally, ensure that your GOPATH and GOBIN environment variables are set correctly. The mockgen tool relies on these settings to locate and install generated mocks.

If you continue to face issues, you may also consider checking the version of mockgen you have installed and make sure it’s the latest version.

mockgen --version

Updating it to the latest version can be done using:

go get github.com/golang/mock/mockgen@latest

Make sure to replace @latest with the specific version if needed.

Following these steps should help you generate the mocks successfully.

2023-12-20