golang: go test

Posted kanguolaikanguolaik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang: go test相关的知识,希望对你有一定的参考价值。

目录

一、功能测试

1.0 知识点

1.1 代码

1.2 执行及结果

二、性能测试

2.0 知识点

2.1 代码

2.2 运行及结果

三、TestMain

3.0 知识点

3.1 代码

3.2 运行及结果


一、功能测试

1.0 知识点

func TestXXX(t *testing.T)

go test -v

1.1 代码

文件:MyTest.go

package main

import (
        "fmt"
)

func Add(a, b int) int 
        return a + b


func main() 
        a := 10
        b := 20

        fmt.Println("sum:", Add(a,b))

文件:MyTest_test.go

package main

import (
        "fmt"
        "testing"
)

func TestAdd(t *testing.T) 
        a := 5
        b := 6
        if Add(a, b) != 11 
                fmt.Println("error")
                t.Error("run error")
        

        fmt.Println("success")

1.2 执行及结果

运行命令:

go test
go test -v

go test MyTest_test.go MyTest.go  -v
go test . -v
go test ./... -v
go test *.go -v

运行结果:

二、性能测试

2.0 知识点

func BenchmarkXXX(b *testing.B)

go test -v -bench=.

2.1 代码

文件:MyTest.go(同上面)

文件:MyTest_test.go

package main

import (
        "fmt"
        "testing"
)

func BenchmarkAdd(b *testing.B) 
        a := 5
        c := 6
        if Add(a, c) != 11 
                fmt.Println("error")
                b.Error("run error")
        

        fmt.Println("success")

2.2 运行及结果

运行命令:

go test -bench=.
go test -v -bench=.

运行结果:运行了1000000000次,平均每次运行时间0.000008 ns

三、TestMain

3.0 知识点

func TestMain(m *testing.M)

1.TestMain会比所有的TestXXX、BenchmarkXXX函数最先执行。
2.只有当在TestMain函数中调用m.Run()才会执行其他的TestXXX、BenchmarkXXX

3.1 代码

文件:MyTest.go(同上面)

文件:MyTest_test.go

package main

import (
        "fmt"
        "testing"
)

func BenchmarkAdd(b *testing.B) 
        a := 5
        c := 6
        if Add(a, c) != 11 
                fmt.Println("error")
                b.Error("run error")
        

        fmt.Println("success")


func TestMain(m *testing.M) 
        fmt.Println("-----start-----")
        m.Run()
        fmt.Println("-----end-----")

3.2 运行及结果

运行命令:

go test -bench=.
go test -v -bench=.

运行结果:

以上是关于golang: go test的主要内容,如果未能解决你的问题,请参考以下文章

golang test.go

golang: go test

golang: go test

Golang测试框架testing介绍

Golang 测试工具 go test

Golang 测试工具 go test