英文:
How to run all the tests specified in files with a naming convention like *_unit_test.go in a Golang project?
问题
我在 CI 上运行一个大型项目的 Go 测试。完成测试大约需要 30 分钟。对于某些分支,我只需要运行 *_unit_test.go 文件中的测试。
go test -run 接受测试名称的正则表达式,而不是文件名。
如果我们传递单个文件(1_unit_test.go),需要同时传递依赖的 Go 文件。
如果我们使用构建标签,需要将它们添加到所有的测试中,以便控制可以运行什么。
英文:
I run go tests for a large project on ci. It takes around 30mins to complete. For some branches, I just need to run tests in *_unit_test.go file.
go test -run takes a regexp of the test name not file names.
if we pass individual files(1_unit_test.go) need to pass the dependant go files along with it.
if we use build tags, need to add them to all the tests to have control over what can be run.
答案1
得分: 2
如何在Go项目中运行所有文件名符合 *_unit_test.go 命名约定的测试?
你不能直接运行所有符合该命名约定的测试。
正如你已经发现的那样,你可以在实际的测试函数上使用命名约定,或者使用构建标签,在某些条件下(如标志或环境变量)基于 t.Skip 来跳过测试。
英文:
> How to run all the tests specified in files with a naming convention like *_unit_test.go in a Go[...] project?
You cannot.
As you already discovered you either have to use naming conventions on the actual Tests, use build tags or skip tests pragmatically via t.Skip based on some condition (like flags or environment variables).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论