go test 使用

2019-03-31 浏览 (2062)

go test 是 golang 提供的测试命令,它会在 *_test.go 中寻找 test 测试、benchmark 基准 和 examples 示例 函数。测试函数必须以 TestXXX 的函数名出现(XXX 为以非小写字母开头),基准函数必须以 BenchmarkXXX 的函数名出现,示例函数必须以 ExampleXXX 的形式

规则:

  1. 文件名须以"_test.go"结尾

  2. test测试的方法名须以"Test"打头,并且形参为 (t *testing.T)

  3. benchmark测试的方法名须以"Benchmark"打头,并且形参为 (t *testing.T)

  4. example测试的方法名须以"Test"打头,并且形参为 (t *testing.T),示例函数无需接收参数,但需要使用注释的 Output: 标记说明示例函数的输出值,未指定Output:标记或输出值为空的示例函数不会被执行。

  5. 测试函数中的某条测试用例执行结果与预期不符时,调用t.Error()或t.Errorf()方法记录日志并标记测试失败

// test 测试函数

func TestXXX(t *testing.T) { ... }

// benchmark 基准函数

func BenchmarkXXX(b *testing.B) { ... }

// examples 示例函数

func ExamplePrintln() {

    Println("this is an example.")

    //Output:this is an example.

}

举例

文件名:/hello_test.go

package main

import (

    "testing"

    "fmt"

)

func TestHello(t *testing.T) {

    fmt.Println("TestHello")

}

func TestWorld(t *testing.T) {

    fmt.Println("TestWorld")

}

测试整个文件:go test -v hello_test.go

=== RUN TestHello

TestHello

--- PASS: TestHello (0.00s)

=== RUN TestWorld

TestWorld

--- PASS: TestWorld (0.00s)

PASS

ok     command-line-arguments  0.007s

测试单个函数:go test -v hello_test.go -test.run TestHello

=== RUN TestHello

TestHello

--- PASS: TestHello (0.00s)

PASS

ok     command-line-arguments  0.008s

  • 所属分类: 后端技术
  • 本文标签: golang
  • 版权声明: 本文链接 https://seaxiang.com/blog/go_test