亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去測試:只運行包含構建標簽的測試?

去測試:只運行包含構建標簽的測試?

Go
明月笑刀無情 2023-06-01 14:56:50
我有一組長時間運行的測試,用構建標簽定義。例如,// file some_test.go//+build func_test(rest of file with test cases)我還有許多其他較短的運行測試,沒有這個構建標志。有沒有一種方法可以讓我輕松地只運行包含構建標簽“func_test”的測試?請注意,如果我只是運行go test -tags func_test,它會運行所有測試,包括some_test.go.
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

根據 golang 文檔https://golang.org/pkg/go/build/

構建標簽列出了文件應該包含在包中的條件。因此,如果您只想為構建標簽 func_test 運行測試,那么您需要為其他測試提供不同的標簽。

這是一個示例:我的測試目錄中有以下 2 個測試文件。

func_test.go

//+build test_all func_test


package go_build_test


import (

    "fmt"

    "testing"

)


func TestNormal(t *testing.T) {

    fmt.Println("testing:", t.Name())


}

other_test.go


//+build test_all,!func_test


package go_build_test


import "testing"

import "fmt"


func TestOtherCase(t *testing.T) {

    fmt.Println("testing:", t.Name())

}

現在如果你想運行所有的測試。


$ go test -tags=test_all

testing: TestNormal

testing: TestOtherCase

PASS

ok      _/D_/Project/ARC/source/prototype/go/src/go-build-test  0.186s

只運行 func_test


$ go test -tags=func_test

testing: TestNormal

PASS

ok      _/D_/Project/ARC/source/prototype/go/src/go-build-test  1.395s

訣竅是使用帶有 AND/OR 條件的 //+build 注釋。


查看完整回答
反對 回復 2023-06-01
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

您可以按照慣例命名您的測試。即讓您的長時間運行的測試功能從開始TestLong_ 然后運行它們 go test ./... -run TestLong -tags func_test



查看完整回答
反對 回復 2023-06-01
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號