【问题标题】:Golang project Travis CI Build fails with error `Makefile:15: recipe for target 'test' failed` [closed]Golang 项目 Travis CI 构建失败并出现错误“Makefile:15:目标“测试”的配方失败”[关闭]
【发布时间】:2019-08-10 15:05:51
【问题描述】:

我已经为我的 Github 项目 Captain 设置了 travis 构建 .travis.yml的内容是:

language: go

go:
  - 1.12.x

script:
  make

env:
  - GO111MODULE=on GOPROXY=https://proxy.golang.org

Makefile的内容是:

# Go parameters
BINARY_FOLDER=./bin
GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
BINARY_NAME=captain
BINARY_UNIX=$(BINARY_NAME)_unix

all: test build
build: 
        $(GOBUILD) -o $(BINARY_FOLDER)/$(BINARY_NAME) ./cmd/...
test: 
        $(GOTEST) -v ./...
clean: 
        rm -rf $(BINARY_FOLDER)
run: all
        $(BINARY_FOLDER)/$(BINARY_NAME)


# Cross compilation
build-linux:
        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_UNIX) -v
docker-build:
        docker run --rm -it -v "$(GOPATH)":/go -w /go/src/bitbucket.org/rsohlich/makepost golang:latest go build -o "$(BINARY_UNIX)" -v

当 travis 构建触发时,它会报错:

go test -v ./...
go: finding github.com/gorilla/mux v1.7.3
go: finding github.com/lib/pq v1.2.0
go: finding github.com/google/uuid v1.1.1
go: finding github.com/DATA-DOG/go-sqlmock v1.3.3
go: downloading github.com/DATA-DOG/go-sqlmock v1.3.3
go: downloading github.com/lib/pq v1.2.0
go: extracting github.com/DATA-DOG/go-sqlmock v1.3.3
go: extracting github.com/lib/pq v1.2.0
# github.com/alwindoss/captain/cmd/captain
cmd/captain/main.go:4:2: undefined: Run
=== RUN   TestCreateWorklistPositiveScenario
2019/08/10 14:56:19 Creating Worklist
2019/08/10 14:56:19 {"id": "ID", "name": "name"}
2019/08/10 14:56:19 Creating worklist in the RDBMS Store
2019/08/10 14:56:19 Last Inserted ID: 1
2019/08/10 14:56:19 ID = 1, affected = 1
--- PASS: TestCreateWorklistPositiveScenario (0.00s)
=== RUN   TestCreateWorklistWhenBadRequestIsSent
2019/08/10 14:56:19 Creating Worklist
2019/08/10 14:56:19 This is a bad request
--- PASS: TestCreateWorklistWhenBadRequestIsSent (0.00s)
PASS
ok      github.com/alwindoss/captain/internal/handler   0.005s
Makefile:15: recipe for target 'test' failed
make: *** [test] Error 2

在作业日志中,我看到我的所有测试都通过了,但构建并没有超出这个范围。相同的 Makefile 在我的 Mac 上本地运行没有问题。

我不确定问题出在哪里。在 Makefile 或我配置 Travis CI 的方式中。

【问题讨论】:

  • cmd/captain/main.go:4:2: undefined: Run 是实际错误
  • @Flimzy 这是错误,它在我的笔记本电脑上传递,因为我的系统中有那个文件,它是该文件所在的文件夹在.gitignore 中被忽略,因此它没有被推送到Github 存储库。感谢您的帮助!
  • 我很高兴你成功了!

标签: go makefile travis-ci


【解决方案1】:

有趣的错误信息是:

cmd/captain/main.go:4:2: undefined: Run

所以在你的main.go 的第4 行,你引用了一个未定义的符号Run

【讨论】:

  • 这是错误,它在我的笔记本电脑上传递,因为我的系统中有该文件,它是该文件所在的文件夹在 .gitignore 中被忽略,因此它没有被推送到 Github 存储库.感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多