zoukankan      html  css  js  c++  java
  • go test: flag provided but not defined: test.timeout

    在为某个项目添加了通过命令行获取指定配置的模块后,在一些模块内部跑test发生了如下错误:

    flag provided but not defined: -test.timeout
    

    很显然,跑go test时涉及到了flag解析。

    go test是以package为单位进行测试的(无论是否通过-run指定特性test函数),所以一定是test所在的包内包含了flag解析逻辑或import了需要进行flag解析的其他package.

    本项目配置中新增了log工具的相关自定义配置,而由于主要功能实现了无错误返回的接口,所以只能在接口函数内调用log工具打印日志。无理想解,考虑其他解耦方式。

    1. 先不使用flag模块,即注释相关的内容。 --工作量大,大型项目不合适

    2. 单独起一个test文件夹,里边只放test相关的模块,并去除掉引用了flag的模块,如需使用此类模块,可以把把其中需要用的对象也拷贝一份。 --也较繁琐,但更可行

    3. 最后编写config相关模块,在这之前做好测试工作。

    最后通过单起一个test文件夹把要测试的代码及其相关依赖逻辑拷贝到目录中略微修改下即可跑通test。

    不知道使用cobra等第三方的命令行开源库会不会也遇到此类问题。等待实践补充......

    想建一个数据库技术和编程技术的交流群,用于磨炼提升技术能力,目前主要专注于Golang和Python以及TiDB,MySQL数据库,群号:231338927,建群日期:2019.04.26,截止2021.02.01人数:300人 ... 如发现博客错误,可直接留言指正,感谢。
  • 相关阅读:
    Android ViewPager用法小结
    HDU1212 Big Number 【同余定理】
    1051. Pop Sequence (25)
    FFmpeg源码结构图
    oracle访问不同用户的表不添加用户名前缀
    window7开启Administrator账户
    Window下对nodejs多版本管理GNVM
    基于Centos7.5搭建Docker环境
    grep与孪生兄弟egrep差异
    Linux编译步骤概述
  • 原文地址:https://www.cnblogs.com/realcp1018/p/15649711.html
Copyright © 2011-2022 走看看