我正在 golang 中构建一个设计模式存储库。为了运行所有测试,我使用这个 bash 脚本。有用。
#!/bin/bash
go test creational/abstract_factory/*.go
go test creational/builder/*.go
go test creational/factory/*.go
go test creational/pool/*.go
go test creational/prototype/*.go
go test creational/singleton/*.go
它工作正常:
prompt> ./runtests.sh
ok command-line-arguments 0.006s
ok command-line-arguments 0.006s
ok command-line-arguments 0.006s
ok command-line-arguments 0.006s
ok command-line-arguments 0.005s
ok command-line-arguments 0.006s
但是,...如果我尝试发送更多目录到go test
我收到此消息“命名文件必须全部位于一个目录中;具有creational/pool/和creational/factory/”。这就是我创建 bash 脚本的原因。
是否可以通过一个命令测试所有文件夹?
使用有什么问题...
?将目录更改为creational
, then
go test ./...
这将递归到所有子文件夹并执行找到的所有包的测试。详细信息请参见使用包调用 go test 时的输出差异 https://stackoverflow.com/questions/42972827/difference-in-output-when-calling-go-test-with-package/42973175#42973175; and 当测试文件位于模块内时,如何运行“go test”? https://stackoverflow.com/questions/39012108/how-do-you-run-go-test-when-test-files-are-within-a-module/39012546#39012546
注意:从1.9开始,包在vendor
子文件夹不匹配,如果./...
用来。来源:Go 1.9 发行说明 - 与 ./... 匹配的供应商 https://golang.org/doc/go1.9#vendor-dotdotdot。在 Go 1.9 之前,go test ./...
也走进了vendor
子文件夹并运行了供应包的测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)