环境
工作区:
工作区是一个对应于特定工程的目录
src 存放源码
pkg 代码包
bin 可执行文件
包:
一个代码集合,可以使用包名.函数名的方式调用包中的函数。
测试案例:
书写格式:
文件名:_test.go结尾
导包:testing
测试函数参数(t *testing.T)
测试案例会执行当前包下所有函数,用t.Error来打印错误信息。
go test默认不会打印成功信息,我们可以使用-v参数显示详细信息
package gotest
import (
"errors"
)
func Division(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
return a / b, nil
}
// gotest_test.go 必须_test.go结尾
package gotest
import "testing"
func Test_Division_1(t *testing.T) {
if i, e := Division(6, 2); i != 3 || e != nil { //try a unit test on function
t.Error("除法函数测试没通过") // 如果不是如预期的那么就报错
} else {
t.Log("第一个测试通过了") //记录一些你期望记录的信息
}
}
func Test_Division_2(t *testing.T) {
t.Error("就是不通过")
}
func Test_Division_3(t *testing.T) {
if _, e := Division(6, 0); e == nil { //try a unit test on function
t.Error("Division did not work as expected.") // 如果不是如预期的那么就报错
} else {
t.Log("one test passed.", e) //记录一些你期望记录的信息
}
}
$ go test -v
=== RUN Test_Division_1
--- PASS: Test_Division_1 (0.00s)
gotest_test.go:9: 第一个测试通过了
=== RUN Test_Division_2
--- FAIL: Test_Division_2 (0.00s)
gotest_test.go:14: 就是不通过
=== RUN Test_Division_3
--- PASS: Test_Division_3 (0.00s)
gotest_test.go:21: one test passed. 除数不能为0
FAIL
exit status 1
FAIL target/1.测试案例 0.002s
GOPATH设置:
window:环境变量中设置
linux:设置.bashrc文件(用户)。profile(系统)
一般设置用户目录下的即可,也可以设置root用户下的。
#放在文件末尾,不要写在if内
export GOPATH="/home/cz/go"
export PATH="$PATH:$GOPATH/bin"
编译运行程序:
build 编译包和依赖库
clean 删除对象文件和缓存的文件
doc 显示包或者符号的文档
env 答应Go环境信息
bug 启动bug报告
fix 更新包以使用新的APIs
fmt gofmt (重新格式化) 包源码
generate 通过处理源代码生成Go文件
get 下载并安装包和依赖项目
install 编译并安装包和依赖项
list list packages
run 编译并运行Go程序
test 测试包
tool 运行指定的go工具
version 打印Go版本信息
vet 报告包中可能出现的错误