测试嵌套 Go 模块
在使用多个 Go 模块时运行 go 测试可能具有挑战性。使用 go test./... 的传统方法将失败,并显示错误,指示没有匹配的包或没有要测试的包。
这是因为 go test 被设计为在单个模块上工作,而不是多个模块。要测试嵌套模块,需要采用不同的方法。
一种解决方案涉及使用 shell 技巧在每个模块中单独执行 go test。例如,您可以使用 find 搜索包含 go.mod 文件的目录,并在每个目录中运行 go test:
<code class="bash">find . -type d -name go.mod -exec go test {} +</code>
或者,您可以创建一个帮助程序脚本或 Makefile 来迭代所需的内容目录并相应地运行 go test:
<code class="bash"># test.sh #!/bin/bash for dir in */; do if [ -f "$dir/go.mod" ]; then go test "$dir" fi done</code>
一些较大的项目可能会维护所有子模块的列表,并利用如上例中的脚本来促进测试。
通过采用这些技术,您可以有效地从父目录跨多个嵌套 Go 模块运行测试。
以上是以下是一些标题选项,请记住问题格式和文章的重点是测试嵌套的 Go 模块: 选项 1(直接且简洁): 如何有效地测试嵌套的 Go 模块?的详细内容。更多信息请关注PHP中文网其他相关文章!