【问题标题】:First golang test run is slow第一次 golang 测试运行很慢
【发布时间】:2021-11-13 04:33:49
【问题描述】:

我正在运行一个非常简单的添加两个数字的测试。

package internal

import "testing"

func TestAddingNumbers(t *testing.T) {
    if add(1, 5) != 6 {
        t.Errorf("Failed Adding numbers")
    }
}

首先 go test -v file.go file_test.go 在 => ok 命令行参数 0.434s 中运行

第二个 go test -v file.go file_test.go 在 => ok command-line-arguments 0.099s 中运行

有没有办法让第一次测试更快? 我的理解是发生了一些缓存,所以第二个更快。 但是在 CI 步骤的上下文中,缓存不会存在,它会使事情变慢。

【问题讨论】:

    标签: go go-testing


    【解决方案1】:

    你不能让第一个运行得更快,因为那是测试真正运行的唯一时间。第二次运行只是使用测试缓存,不运行测试。

    但是,您可以通过禁用测试缓存使测试运行使用相似的时间。惯用的方法是使用标志:

    go test -count=1
    

    【讨论】:

    • 非常令人失望
    • go test 将首先构建和审查程序,然后运行测试。测试运行的持续时间很少成为问题。你想达到什么目的?
    • @nono,让事情变得更快的唯一方法就是减少工作量;那么您想跳过测试还是完全跳过构建和测试?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多