为了账号安全,请及时绑定邮箱和手机立即绑定

如何运行 go-unit-tests 预提交挂钩以使用选项 -p 运行

如何运行 go-unit-tests 预提交挂钩以使用选项 -p 运行

Go
慕沐林林 2022-12-05 17:11:44
我正在查看这个 golang-precommit 挂钩存储库:https ://github.com/dnephin/pre-commit-golanggo-unit-testshook 运行命令go test -tags=unit -timeout 30s -short -v但是如果我想 go hook 运行带 -p=1选项的命令怎么办。有什么办法可以做到这一点?这是我.pre-commit-config.yaml文件中的内容repos:  - repo: https://github.com/dnephin/pre-commit-golang    rev: v0.4.0    hooks:      - id: go-fmt      - id: go-unit-tests
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

没有直接给出那个钩子,但是那个 repo 并没有真正添加太多,你可以通过一个repo: local钩子(未经测试)复制你想要的东西:


-   repo: local

    hooks:

    -   id: go-unit-tests

        name: go unit tests

        entry: go test -p=1 ./...

        pass_filenames: false

        types: [go]

        language: system

免责声明:我写了预提交

/公然的自我推销

我邀请你看看我的 golang pre-commit hooks 项目:

该项目包括用于“go test”的内置挂钩:

这些钩子专门设计用于使您能够将额外的参数传递给 go 工具。

只需使用预提交的内置 args 机制:

此外,每个钩子都有一个针对不同范围运行的版本:

  • 单独修改的 .go 文件

  • 存储库中的所有 .go 文件

  • 包含修改后的 .go|go.mod 文件的完整模块

  • 存储库中的所有模块

  • 包含修改后的 .go 文件的完整包(已弃用)

  • 存储库中的所有包(已弃用)

注意:可用范围取决于每个工具实际支持的内容。

最后,有一种机制可以调用(还)没有内置钩子的通用 go 工具(很难跟上它们)。

根据您最初的问题,这里有一个运行 go test 的示例-p=1

    -   repo: https://github.com/tekwizely/pre-commit-golang
        rev: master
        hooks:
        -   id: go-test-mod
            args: ['-p=1']

我希望你能尝试一下我的项目。我认为您会发现它为 golang 提供了最好的可用预提交挂钩。

(随意提出任何澄清问题,但请不要在这里寻求太多支持 - 项目页面上的问题和讨论跟踪器是处理此类问题的更好地方)


查看完整回答
反对 回复 2022-12-05
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信