求助一个关于 go test 启动时间过久的问题

问题来源

项目新特性完成后进行单元测试阶段,在goland中通过其自带的go test按钮执行单元测试,也就是go test

问题描述

go version: go 1.13
对任意用例进行单元测试,启动时间过久,平均超过18s,而时间花费主要是在于go test的编译过程,实际代码执行花费时间不到1s主要是一些sql执行,平均不到80ms,编译时间远远超过整个项目重启的时间

所做的尝试

1.在命令行使用go test命令测试
依旧很慢
2.网上查找go test启动过慢的问题
没有找到有用的信息

希望有知道的给个方向或者建议,谢谢大家

最佳答案

因为没有贴代码,其实也不太好怎么帮你猜遇到的情况,我只能提供一个分析问题的思路给你:

首先自己分析问题:为什么测试时间会这么久?
可能原因:

  1. 电脑配置太差?
  2. 运行测试太多?
  3. 测试前后预置的处理太多?
  4. 某些测试太过耗时?
    等等…..

然后根据你列出的可能一一排查:
如何排查?

  1. 换台配置更好的电脑试试。
  2. 直接运行空测试,或者单个测试
  3. 去除测试前后预置处理
  4. 同2
    等等…

排除所有可能,如果还没有找到原因?
想想你是否考虑到了所有情况。

以上只是一个思路,不喜勿喷。

最后,项目中没有任何测试,尝试了 go test 并没有出现很慢的情况

4年前 评论
Altruiste (楼主) 4年前
讨论数量: 2

因为没有贴代码,其实也不太好怎么帮你猜遇到的情况,我只能提供一个分析问题的思路给你:

首先自己分析问题:为什么测试时间会这么久?
可能原因:

  1. 电脑配置太差?
  2. 运行测试太多?
  3. 测试前后预置的处理太多?
  4. 某些测试太过耗时?
    等等…..

然后根据你列出的可能一一排查:
如何排查?

  1. 换台配置更好的电脑试试。
  2. 直接运行空测试,或者单个测试
  3. 去除测试前后预置处理
  4. 同2
    等等…

排除所有可能,如果还没有找到原因?
想想你是否考虑到了所有情况。

以上只是一个思路,不喜勿喷。

最后,项目中没有任何测试,尝试了 go test 并没有出现很慢的情况

4年前 评论
Altruiste (楼主) 4年前
taadis

能确定是测试前的编译阶段慢的话, 那你单独执行下编译, 输出详细看看到底慢在哪一步了...

18s 这么长看起来想是下载依赖的耗时(比如网络不佳或者依赖型非常多)..还有一种是你项目非常非常大...

另一个, 你可以试试, 新建一个空项目看看没有远程依赖项的时候编译快不快?

在试试, 有远程依赖的时候是不是也马上慢了10来秒?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!