安装ginkgo
go get github.com/onsi/ginkgo/ginkgo
go get github.com/onsi/gomega/...
ginkgo启动参数
ginkgo -r --procs=N --compilers=N --randomize-all --randomize-suites --fail-on-pending --keep-going --cover --coverprofile=cover.profile --race --trace --json-report=report.json --timeout=TIMEOUT --poll-progress-after=Xs --poll-progress-interval=Ys
部分参数解释如下:
-r将递归地查找并运行当前目录中的所有suite。
-procs=N将并行运行每个suite,可以极大地提升测试的速度。
——compilers=N设定用于并行编译test suite的内核数量。
——randomize-all和——randomize-suites会随机化所有和suite运行的顺序。这将帮助您尽早弄清楚spec污染!
——keep-going将指示Ginkgo在遇到error时继续运行suite。
需要注意的是:使用go test或ginkgo命令运行go test代码时,默认会通过一个线程,以开发者编写的Spec顺序串行执行。因此,只有启动时使用了——randomize-all参数,才有设定suite执行顺序的需要。只有启动时使用了-procs=N参数,才有设置串行执行的需要。
设定Spec执行顺序–使用装饰器
Serial
在ginkgo中,serial可以设定该部分代码串行执行,可以用在可能导致资源竞争的地方,不会导致并发问题。举例如下:
Describe("Never in parallel please", Serial, func() {
It("tests one behavior", func()