内容简介:最后输出的结果为
go get -u gopkg.in/check.v1
package hello_test
import (
"testing"
"io"
. "gopkg.in/check.v1"
)
func Test(t *testing.T) { TestingT(t) } //继承testing的方法,可以直接使用go test命令运行
type MySuite struct{} //创建测试套件结构体
var _ = Suite(&MySuite{})
func (s *MySuite) TestHelloWorld(c *C) { //声明TestHelloWorld方法为MySuite套件的测试用例
c.Assert(42, Equals, "42")
c.Assert(io.ErrClosedPipe, ErrorMatches, "io: .*on closed pipe")
c.Check(42, Equals, 42)
}E:\go_project>go test
----------------------------------------------------------------------
FAIL: gocheck_test.go:17: MySuite.TestHelloWorld
gocheck_test.go:18:
c.Assert(42, Equals, "42")
... obtained int = 42
... expected string = "42"
OOPS: 0 passed, 1 FAILED
--- FAIL: Test (0.00s)
FAIL
exit status 1
FAIL _/E_/go_project 0.441sc.Assert(42, Equals, 42)
E:\go_project>go test OK: 1 passed PASS ok _/E_/go_project 0.290s
func (s *SuiteType) SetUpSuite(c *C) - 在测试套件启动前执行一次 func (s *SuiteType) SetUpTest(c *C) - 在每个用例执行前执行一次 func (s *SuiteType) TearDownTest(c *C) - 在每个用例执行后执行一次 func (s *SuiteType) TearDownSuite(c *C) - - 在测试套件用例都执行完成后执行一次
package hello_test
import (
"testing"
"io"
"fmt"
"strconv"
. "gopkg.in/check.v1"
)
var a int =1
// Hook up gocheck into the "go test" runner.
func Test(t *testing.T) { TestingT(t) }
type MySuite struct{}
var _ = Suite(&MySuite{})
func (s *MySuite) SetUpSuite(c *C) {
str3:="第1次套件开始执行"
fmt.Println(str3)
}
func (s *MySuite) TearDownSuite(c *C) {
str4:="第1次套件执行完成"
fmt.Println(str4)
}
func (s *MySuite) SetUpTest(c *C) {
str1:="第"+strconv.Itoa(a)+"条用例开始执行"
fmt.Println(str1)
}
func (s *MySuite) TearDownTest(c *C) {
str2:="第"+strconv.Itoa(a)+"条用例执行完成"
fmt.Println(str2)
a=a+1
}
func (s *MySuite) TestHelloWorld(c *C) {
c.Assert(42, Equals, 42)
c.Assert(io.ErrClosedPipe, ErrorMatches, "io: .*on closed pipe")
c.Check(42, Equals, 42)
}
func (s *MySuite) TestHelloTerry(c *C) {
c.Assert("terry", Equals, "terry")
c.Assert(io.ErrClosedPipe, ErrorMatches, "io: .*on closed pipe")
c.Check(42, Equals, 42)
}E:\go_project>go test 第1次套件开始执行 第1条用例开始执行 第1条用例执行完成 第2条用例开始执行 第2条用例执行完成 第1次套件执行完成 OK: 2 passed PASS ok _/E_/go_project 0.502s
func (s *MySuite) SetUpSuite(c *C) {
str3:="第1次套件开始执行"
fmt.Println(str3)
c.Skip("Skip TestSutie") //在测试套件启动前跳过整个测试套件的用例
}
//其余代码参考上文E:\go_project>go test 第1次套件开始执行 第1次套件执行完成 OK: 0 passed, 2 skipped PASS ok _/E_/go_project 0.272s
func (s *MySuite) TestHelloWorld(c *C) {
c.Skip("Skip TestCase") //跳过当前测试用例
c.Assert(42, Equals, 42)
c.Assert(io.ErrClosedPipe, ErrorMatches, "io: .*on closed pipe")
c.Check(42, Equals, 42)
}E:\go_project>go test 第1次套件开始执行 第1条用例开始执行 第1条用例执行完成 第2条用例开始执行 第2条用例执行完成 第1次套件执行完成 OK: 1 passed, 1 skipped PASS ok _/E_/go_project 0.304s
$ go test -check.f MyTestSuite //选择测试套件 $ go test -check.f "Test.*Works" //选择测试方法 $ go test -check.f "MyTestSuite.Test.*Works" //选择套件中的方法
E:\go_project>go test -check.f TestHelloTerry 第1次套件开始执行 第1条用例开始执行 第1条用例执行完成 第1次套件执行完成 OK: 1 passed PASS ok _/E_/go_project 0.293s
E:\go_project>go test -check.f MySuite.TestHelloTerry 第1次套件开始执行 第1条用例开始执行 第1条用例执行完成 第1次套件执行完成 OK: 1 passed PASS ok _/E_/go_project 0.319s
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。