首页 > 解决方案 > 第一次 golang 测试运行很慢

问题描述

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

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 command-line-arguments 0.434s

虽然第二次 go test -v file.go file_test.go运行 => ok command-line-arguments 0.099s

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

标签: gogo-testing

解决方案


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

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

go test -count=1

推荐阅读