您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通过go test跳过一些测试

通过go test跳过一些测试

就像VonC所说的,您可以使用+build标签

┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? ls
a_test.go  b_test.go  c_test.go

package tags

import "testing"

func TestA(t *testing.T) {}

// +build !feature1

package tags

import "testing"

func TestB(t *testing.T) {}

// +build !feature1
// +build !feature2

package tags

import "testing"

func TestC(t *testing.T) {}

然后使用-tags参数运行测试:

┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v . | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v -tags feature1 . | grep PASS:
--- PASS: TestA (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v -tags feature2 . | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)

//更新:不同的逻辑:

// +build all

package tags

import "testing"

func TestA(t *testing.T) {}

// +build all feature1

package tags

import "testing"

func TestB(t *testing.T) {}

// +build all feature2

package tags

import "testing"

func TestC(t *testing.T) {}


┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v -tags all | grep PASS:
--- PASS: TestA (0.00 seconds)
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v -tags feature1 | grep PASS:
--- PASS: TestB (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -v -tags="feature1 feature2" | grep PASS:
--- PASS: TestB (0.00 seconds)
--- PASS: TestC (0.00 seconds)

或者您通过名称调用特定的测试,例如:

package tags

import "testing"

func TestA1(t *testing.T) {}
func TestB1(t *testing.T) {}
func TestC1(t *testing.T) {}
func TestD1(t *testing.T) {}

输出

┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -run="(A|B)1" -v | grep PASS:
--- PASS: TestA1 (0.00 seconds)
--- PASS: TestB1 (0.00 seconds)
┌─ oneofone@Oa [/t/tst-tag]                                                                                                      
└──? go test -run="D1" -v | grep PASS:
--- PASS: TestD1 (0.00 seconds)
Go 2022/1/1 18:14:25 有522人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶