首页 > 后端开发 > Golang > 如何在多个Go模块的父目录中运行'go test”?

如何在多个Go模块的父目录中运行'go test”?

Barbara Streisand
发布: 2024-10-29 03:09:29
原创
387 人浏览过

How to Run `go test` in the Parent Directory of Multiple Go Modules?

在多个 Go 模块的父目录中运行 go test

当遇到子目录中有多个 Go 模块的目录结构时,运行 go test从父目录中获取可能会带来挑战。下面的代码片段演示了这个问题:

/root
    /one
        go.mod
        go.sum
        main.go
        main_test.go
    /two
        go.mod
        go.sum
        main.go
        main_test.go
登录后复制

从根目录运行 go test./... 将导致错误:

go: warning: "./..." matched no packages
no packages to test
登录后复制

出现这种情况是因为 go test 是专门设计用于对位于当前目录或其父目录中的单个模块进行操作。它不支持嵌套模块或从多个模块的父目录执行测试。

要解决此问题,解决方案是创建 shell 脚本或使用 find 之类的实用程序导航到每个单独的模块并执行 go在这些目录中进行测试。例如:

cd /root/one
go test .
cd /root/two
go test .
登录后复制

或者,某些项目可能会利用 Makefile 或 test.sh 脚本来自动执行此过程。例如,以下假设项目中的 test.sh 脚本循环遍历模块列表并为每个目录运行 go test:

#!/bin/bash

modules="one two three"

for module in $modules; do
    cd $module
    go test .
    cd ..
done
登录后复制

以上是如何在多个Go模块的父目录中运行'go test”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板