testing - 其他功能

    如果测试文件中包含该函数,那么生成的测试将调用 TestMain(m),而不是直接运行测试。TestMain 运行在主 goroutine 中 , 可以在调用 m.Run 前后做任何设置和拆卸。注意,在 TestMain 函数的最后,应该使用 m.Run 的返回值作为参数去调用 os.Exit

    一个包含 的例子如下:

    1. package mytestmain
    2. import (
    3. "flag"
    4. "fmt"
    5. "os"
    6. "testing"
    7. )
    8. var db struct {
    9. Dns string
    10. }
    11. func TestMain(m *testing.M) {
    12. db.Dns = os.Getenv("DATABASE_DNS")
    13. if db.Dns == "" {
    14. }
    15. flag.Parse()
    16. db.Dns = ""
    17. // 退出
    18. os.Exit(exitCode)
    19. }
    20. func TestDatabase(t *testing.T) {
    21. fmt.Println(db.Dns)
    22. }

    Test Coverage

    测试覆盖率,这里讨论的是基于代码的测试覆盖率。

    关于测试覆盖率的更多信息,可以参考官方的博文:The cover story

    导航