目录结构:
|—— makefile/ // 根目录 ****|—— utils/ // 待测试目录 ********|—— utils.go ********|—— utils_test.go ****|—— main.go // 入口文件 ****|—— go.mod // go module 文件 ****|—— Makefile // makefile 配置文件
编写 makefile/go.mod 文件:
module makefile-demo
编写 makefile/utils/utils.go 文件:
package utils func Add(a, b int) int { return a + b } func Minus(a, b int) int { return a - b }
编写 makefile/utils/utils_test.go 文件:
package utils import ( "testing" ) func TestUtils(t *testing.T) { c := Add(1, 2) if c != 3 { t.Errorf("%d + %d != %d", 1, 2, 3) } d := Minus(3, 2) if d != 1 { t.Errorf("%d - %d != %d", 3, 2, 1) } t.Log("测试通过") }
编写 makefile/main.go 文件:
package main import ( "fmt" "makefile-demo/utils" ) func main() { a := 1 b := 2 fmt.Printf("a + b = %d \n", utils.Add(a, b)) fmt.Printf("a - b = %d \n", utils.Minus(a, b)) }
编写 makefile/Makefile 文件:
# 所有自定义步骤列表 .PHONY: all test build deploy help # 自定义变量 OUTPUT_FILE=myapp # 直接运行 make 命令调用的步骤 all: test build deploy # 测试 test: cd utils && \ go test # 构建 build: CGO_ENABLED=0 && \ GOOS=darwin && \ GOARCH=amd64 && \ go build -v -ldflags "-w" -o ${OUTPUT_FILE} # 部署(运行) deploy: ./${OUTPUT_FILE} # 帮助信息("@"屏蔽输出) help: @echo "【make】 -- 测试、构建、部署" @echo "【make test】 -- 测试" @echo "【make build】 -- 构建" @echo "【make deploy】 -- 部署" @echo "【make help】 -- 查看帮助"
执行自定义部署命令:
make -- 对应【all】 make test -- 对应【test】 make build -- 对应【build】 make deploy -- 对应【deploy】 make help -- 对应【help】
文档更新时间: 2024-04-20 10:57 作者:lee