2016-11-05 129 views
3

我已经为我的结构(https://github.com/stretchr/testify#suite-package)设置了测试套件。在我能够通过指定一种模式运行单个测试之前:我可以在套件中运行单个测试吗?

go test -v ./services/gateways/... -run mytest 

此方法在转换后不起作用。运气不好还是有办法?

+0

不'-m'你期待什么?从文档:'正则表达式来选择指定命令行参数的测试套件的方法“-m”'也许与'-run'结合来指定套件? – JimB

+0

根据帮助,“run”是 - 只运行与正则表达式匹配的那些测试和示例。“该文件的内容只有一个调用套件方法的测试。因此,在分析文件后''测试'可能只是找不到匹配,如果它看起来像'func TestBlah(t * testing.T)'... – Schultz9999

+0

yes,'-run'选择'Test *'函数来运行,它启动一个特定的套件,'-m'标志将过滤要执行的套件方法。 – JimB

回答

0

我认为你是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 
+0

有趣。也许'TestSuite2/third'是关键。我会尽力。谢谢! – Schultz9999

2

您可以通过指定运行单个方法的说法。

运行this suite method的命令是:

go test -v github.com/vektra/mockery/mockery -run ^TestGeneratorSuite$ -testify.m TestGenerator

+0

现在标志已经更改为-m(去版本go1.9) –

+0

这是一个耻辱,你不能只用.only来标记测试,或者像你在其他测试框架中可以做的那样。 –

相关问题