zoukankan      html  css  js  c++  java
  • Go测试--main测试

    简介

    子测试的一个方便之处在于可以让多个测试共享Setup和Tear-down。但这种程度的共享有时并不满足需求,有时希望在整个测试程序做一些全局的setup和Tear-down,这时就需要Main测试了。

    所谓Main测试,即声明一个func TestMain(m *testing.M),它是名字比较特殊的测试,参数类型为testing.M指针。如果声明了这样一个函数,当前测试程序将不是直接执行各项测试,而是将测试交给TestMain调度。

    示例

    // TestMain 用于主动执行各种测试,可以测试前后做setup和tear-down操作
    func TestMain(m *testing.M) {
        println("TestMain setup.")
    
        retCode := m.Run() // 执行测试,包括单元测试、性能测试和示例测试
    
        println("TestMain tear-down.")
    
        os.Exit(retCode)
    }
    

    上述例子中,日志打印的两行分别对应Setup和Tear-down代码,m.Run()即为执行所有的测试,m.Run()的返回结果通过os.Exit()返回。

    如果所有测试均通过测试,m.Run()返回0,否同m.Run()返回1,代表测试失败。

    有一点需要注意的是,TestMain执行时,命令行参数还未解析,如果测试程序需要依赖参数,可以使用flag.Parse()解析参数,m.Run()方法内部还会再次解析参数,此处解析不会影响原测试过程。

    ♥永远年轻,永远热泪盈眶♥
  • 相关阅读:
    angular2监听页面大小变化
    angular如何引入公共JS
    angular使用Md5加密
    angular4模块中标签添加背景图
    angular使用sass的scss语法
    设置angular公共样式表
    更改angular的默认端口
    angular模拟web API
    RN与webview通讯
    shell通过ping检测整个网段IP的网络状态脚本
  • 原文地址:https://www.cnblogs.com/failymao/p/15026201.html
Copyright © 2011-2022 走看看