一尘不染

如何对我项目中的所有测试文件(供应商包除外)运行go test

go

我的项目文件夹包含:

Makefile  README.md  component/  driver/  service/  vendor/  worker/

我想go test在所有测试文件上运行,例如,foobar_test.go除供应商软件包中的测试文件外的文件。我最接近成功的是,go test ./...但其中包括供应商测试文件。

我在文档中看到您可以将正则表达式传递给-runoption,但是我无法正常工作。例如我尝试过go test ./*,但是我得到了一堆can't load package errors

最好的方法是什么?


阅读 535

收藏
2020-07-02

共1个答案

一尘不染

-run模式仅与测试标识符(而非文件名)匹配;原则上,您可以执行以下操作:

go test -run TestFoo

但是当您不得不将Foo所有测试功能名称添加到您可能不需要的位置时。

自Go 1.9起,该...通配符不包含该./vendor目录,因此您现在可以运行go test ./...,而不会包含./vendor

2020-07-02