單獨的整合測試

構建約束通常用於將正常單元測試與需要外部資源(如資料庫或網路訪問)的整合測試分開。為此,請在測試檔案的頂部新增自定義構建約束:

// +build integration
 
package main
 
import (
    "testing"
)
 
func TestThatRequiresNetworkAccess(t *testing.T) {
    t.Fatal("It failed!")
}

除非使用以下 go test 呼叫,否則測試檔案將無法編譯到構建可執行檔案中:

go test -tags "integration"

結果:

$ go test
?       bitbucket.org/yourname/yourproject    [no test files]
$ go test -tags "integration"
--- FAIL: TestThatRequiresNetworkAccess (0.00s)
        main_test.go:10: It failed!
FAIL
exit status 1
FAIL    bitbucket.org/yourname/yourproject    0.003s