测试嵌套 Go 模块
使用多个 Go 模块时运行 go 测试可能具有挑战性。使用 go test 的传统方法会失败,并显示错误,指示没有匹配的包或没有要测试的包。
这是因为 go test 被设计为在单个模块上工作,而不是在多个模块上工作。要测试嵌套模块,需要采用不同的方法。
一个解决方案涉及使用 shell 技巧在每个模块中单独执行 go test。例如,您可以使用 find 搜索包含 go.mod 文件的目录,并在每个目录中运行 go test:
find . -type d -name go.mod -exec go test {}
或者,您可以创建一个帮助程序脚本或 Makefile 来迭代所需的目录并相应地运行 go test:
# test.sh
#!/bin/bash
for dir in */; do
if [ -f "$dir/go.mod" ]; then
go test "$dir"
fi
done
一些较大的项目可能会维护所有子模块的列表,并利用如上例中的脚本来促进测试。
通过采用这些技术,您可以有效地跨多个嵌套运行测试从父目录转到模块。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3