命令使用
测试
在对应的文件建立同名+_test.go
文件,例如gameServ_test.go
测试文件中的函数要以Test
开头,其中参数要是t *testing.T
如下:
func TestStrconv(t *testing.T) {
dogItems := []int{1, 2, 3, 4, 5}
str, err := json.Marshal(dogItems)
t.Log(string(str), err)
}
最后在命令行里进入对应的文件目录,输入以下命令:
#go test -v(代表显示过程) <测试文件名> [<可能要引用的名字>] -run=<要运行的函数>
$ go test -v gameServ_test.go -run=TestStrconv
构建与部署
注意构建后如果不能运行请查看是错误如下:
golang cannot execute binary file: Exec format error
这个说明是构建平台出错
构建运行
$ go run main.go # 运行
#go build <name> 构建到<name>
$ go build main.so
$ ./main.so #运行
# 构建linux下的文件
$ GO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main.so main.go
# 或者windows 下这样
$ set GOOS=linux
$ set GOARCH=amd64
$ go build -o "packageName"
# 或者
$ GO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "zodiac"
chmod 777 <progress_name> #开启[程序名]全部读写执行权限
nohup ./xxx & #后台运行
ps xxx #查询pid
ps aux|grep test
kill xxx #杀程序
在Windows中编译Linux运行的Golang程序
参考如下:
打开CMD,先修改Go环境参数,然后再编译。编译结束恢复为windows的环境参数。
注意:不知道为什么,在VsCode的Terminal中操作时会失败,但是在cmd.exe中是可以的。
第一步,修改go环境参数
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
设置完之后,可以查看一下设置是否生效:
go env CGO_ENABLED
go env GOOS
go env GOARCH
第二步,编译
环境参数设置为linux编译时的参数后,即可正常编译:
go build main.go
第三步,将环境参数改回windows
也可不改回,取决于具体需要
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64
可以将上述命令卸载一个.bat里面,每次编译时直接运行.bat即可:
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
echo now the CGO_ENABLED:
go env CGO_ENABLED
echo now the GOOS:
go env GOOS
echo now the GOARCH:
go env GOARCH
go build main.go
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64
echo now the CGO_ENABLED:
go env CGO_ENABLED
echo now the GOOS:
go env GOOS
echo now the GOARCH:
go env GOARCH
评论