Golang 项目 Travis CI Build 失败,错误为 `Makefile:15: recipe for target ' test' failed`

标签 go makefile travis-ci

<分区>

我已经为我的 Github 项目设置了 travis build Captain .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

所以在 main.go 的第 4 行,您引用了一个 undefined symbol Run

关于Golang 项目 Travis CI Build 失败,错误为 `Makefile:15: recipe for target ' test' failed`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443283/

相关文章:

go - GET 页面请求错误

Golang - 如何获得 mux 的授权?

go - Go 编译器是否足够聪明以进行微优化?

javascript - 创建一个双头动态表,其中填充了从 golang 服务器提取的三个不同数组的元素

ruby-on-rails - Travis 构建失败并出现致命监听错误

c++ - 如何使用 CMake 添加编译器参数?

python - 如何使用 shell 脚本(和 makefile?)执行 python 程序

c++ - 生成文件错误 : No such file or directory

mysql - TravisCI - 是否可以启动 docker 服务并期望 mysql 正常工作?

javascript - 为什么我的 selenium 测试在没有代码更改后在 travis-ci 上失败,而它们在本地通过?