Search code examples
gogo-modules

Can't load package in brand new Go project


I'm trying modules in Go. I'm outside the GOPATH and using version 1.12.6:

GOBIN="/home/x80486/Workshop/go/bin/"
GOPATH="/home/x80486/Workshop/go/"
GOROOT="/home/x80486/.asdf/installs/golang/1.12.6/go/"

I created a new project and initialized it as a module inside: /home/x80486/Workshop/Development/gauge-basics. I then created a file example_spec.go with this content:

package stepImpl

import (
  "github.com/getgauge-contrib/gauge-go/gauge"
)

var _ = gauge.Step("Run me before any other", func() {})

...and I ran go test:

[x80486@uplink gauge-basics]$ go test
go: finding github.com/getgauge-contrib/gauge-go/gauge latest
go: finding github.com/getgauge/common latest
go: finding github.com/golang/protobuf/proto latest
go: finding github.com/dmotylev/goproperties latest
?       github.com/x80486/gauge-basics  [no test files]

Everything is somehow OK, but as soon as I move this file into a folder named stepImpl, nothing works:

[x80486@uplink gauge-basics]$ go build
can't load package: package github.com/x80486/gauge-basics: unknown import path "github.com/x80486/gauge-basics": cannot find module providing package github.com/x80486/gauge-basics

I can't understand why moving a file to a folder with the package name would break the project.


This is the generated go.mod file:

module github.com/x80486/gauge-basics

go 1.12

require (
    github.com/dmotylev/goproperties v0.0.0-20140630191356-7cbffbaada47 // indirect
    github.com/getgauge-contrib/gauge-go v0.1.3 // indirect
    github.com/getgauge/common v0.0.0-20190514095629-619e107433ce // indirect
    github.com/golang/protobuf v1.3.2 // indirect
)

Solution

  • There are no .go files under github.com/x80486/gauge-basics, because you moved them under a different directory. You can run go build under the directory containing the source files or add another .go in the gauge-basics directory importing them.