go-test知识点

  • 命令 go test 或 go test -v

  • 文件名必须以_test.go的格式命名

  • 使用t.Run来执行可实现顺序执行

  • testing.m 初始化test,如果有testing.m则其他方法都不会执行,必须使用m.Run才会执行其他方法

  • benchMark 性能测试,命令:go test -bench=.

    b.N会不断的调整

代码示例:

package main

import (
    "fmt"
    "testing"
)

func TestMain(m *testing.M) {
    fmt.Println("初始化")
    m.Run()
}

func TestAll(t *testing.T) {
    t.Run("TestEchoHello1", testEchoHello1)
    t.Run("TestEchoHello3", testEchoHello3)
    t.Run("TestEchoHello2", testEchoHello2)
}


func testEchoHello1(t *testing.T) {
    fmt.Println("TestEchoHello1")
    EchoHello()
}

func testEchoHello2(t *testing.T) {
    fmt.Println("TestEchoHello2")
    EchoHello()
}

func testEchoHello3(t *testing.T) {
    fmt.Println("TestEchoHello3")
    EchoHello()
}

func BenchmarkEchoHello(b *testing.B) {
    for i:=0;i<b.N ;i++  {
        EchoHello()
    }
}

//查看b.N的变化
func BenchmarkEchoHello1(b *testing.B) {
    count := 0
    for i:=0;i<b.N ;i++  {
        if i==0 {
            fmt.Println(b.N)
        }
        count ++
    }
    fmt.Println("count:",count)
}

 

原文地址:https://www.cnblogs.com/dqh123/p/13225535.html