首页 > 后端开发 > Golang > 正文

如何在父目录中测试多个Go模块?

Barbara Streisand
发布: 2024-10-30 03:19:03
原创
955 人浏览过

How to Test Multiple Go Modules in a Parent Directory?

在父目录中测试多个模块

在父目录中使用多个 Go 模块时,跨运行测试可能会很困难他们所有人。考虑如下所示的目录结构:

/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 和 xargs 命令,如 Cerise Limón 的评论所建议。项目通常会创建一个 Makefile 或 test.sh 脚本来自动化此过程。

对于具有大量模块的大型项目,更系统的方法是维护所有模块的列表(如 Google 的 go-cloud 项目) 。然后,该项目使用脚本循环遍历模块列表并执行任务,例如为每个目录运行测试。

示例:

以下 test.sh 脚本演示了这一点方法:

<code class="sh">#!/bin/bash

for module in $(cat allmodules); do
  cd $module
  go test
  cd ..
done</code>
登录后复制

注意:

您可能不需要单独的文件来列出模块,但 go-cloud 项目的实现提供了一个示例,说明如何更大项目管理多模块测试。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!