我已經爲我的結構(https://github.com/stretchr/testify#suite-package)設置了測試套件。在我能夠通過指定一種模式運行單個測試之前:我可以在套件中運行單個測試嗎?
go test -v ./services/gateways/... -run mytest
此方法在轉換後不起作用。運氣不好還是有辦法?
我已經爲我的結構(https://github.com/stretchr/testify#suite-package)設置了測試套件。在我能夠通過指定一種模式運行單個測試之前:我可以在套件中運行單個測試嗎?
go test -v ./services/gateways/... -run mytest
此方法在轉換後不起作用。運氣不好還是有辦法?
我認爲你是SOL與包裝,但這裏有一個類似的方法和GO 1.7的股票測試工具:
package main
import "testing"
func TestSuite1(t *testing.T) {
t.Run("first test", func(t *testing.T) { t.Fail() })
t.Run("second test", func(t *testing.T) { t.Fail() })
}
func TestSuite2(t *testing.T) {
t.Run("third test", func(t *testing.T) { t.Fatal("3") })
t.Run("fourth test", func(t *testing.T) { t.Fatal("4") })
}
例輸出一套房:
therealplato/stack-suites Ω go test -run TestSuite1
--- FAIL: TestSuite1 (0.00s)
--- FAIL: TestSuite1/first_test (0.00s)
--- FAIL: TestSuite1/second_test (0.00s)
FAIL
exit status 1
FAIL github.com/therealplato/stack-suites 0.005s
示例輸出一個測試:
therealplato/stack-suites Ω go test -run TestSuite2/third
--- FAIL: TestSuite2 (0.00s)
--- FAIL: TestSuite2/third_test (0.00s)
main_test.go:11: 3
FAIL
exit status 1
FAIL github.com/therealplato/stack-suites 0.005s
有趣。也許'TestSuite2/third'是關鍵。我會盡力。謝謝! – Schultz9999
您可以通過指定運行單個方法的說法。
運行this suite method的命令是:
go test -v github.com/vektra/mockery/mockery -run ^TestGeneratorSuite$ -testify.m TestGenerator
現在標誌已經更改爲-m(去版本go1.9) –
這是一個恥辱,你不能只用.only來標記測試,或者像你在其他測試框架中可以做的那樣。 –
不'-m'你期待什麼?從文檔:'正則表達式來選擇指定命令行參數的測試套件的方法「-m」'也許與'-run'結合來指定套件? – JimB
根據幫助,「run」是 - 只運行與正則表達式匹配的那些測試和示例。「該文件的內容只有一個調用套件方法的測試。因此,在分析文件後''測試'可能只是找不到匹配,如果它看起來像'func TestBlah(t * testing.T)'... – Schultz9999
yes,'-run'選擇'Test *'函數來運行,它啓動一個特定的套件,'-m'標誌將過濾要執行的套件方法。 – JimB