You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gotestsum --watch flag时出现文件stat警告的问题

gotestsum --watch 模式下stat缺失文件警告的解决办法

使用gotestsum的--watch参数时,每次保存测试文件后都会出现如下警告:

WARN failed to stat path/to/pkg/Somefile_test.go~: stat path/to/pkg/Somefile_test.go~: no such file or directory

测试本身可正常执行(无论通过或失败),警告固定在Done [n] tests ...之后打印,且仅出现一条针对单个缺失文件的提示。手动在终端按r或a重新运行测试时不会触发该警告,尝试过相对路径、包名、-- ./...等参数组合,问题依旧。

问题根源

这个警告来自文本编辑器的临时备份机制——像Vim、Emacs这类编辑器在保存文件时,会先生成带~后缀的临时备份文件,保存完成后立刻删除。gotestsum的watch功能会监控文件系统的所有变动,当编辑器创建这个临时文件时,gotestsum会记录下路径,但等它去检查文件状态时,备份文件已经被编辑器删掉,因此抛出stat失败的警告。

解决方法

  • 关闭编辑器的备份文件生成
    以Vim为例,在~/.vimrc中添加以下配置:

    set nobackup
    set nowritebackup
    

    其他编辑器可查找对应关闭备份文件的设置,从根源避免临时文件触发警告。

  • 让gotestsum忽略备份文件
    使用--exclude参数过滤带~后缀的文件:

    gotestsum --watch --exclude '*~' -- ./...
    

    这样watch机制会自动跳过所有备份文件,不会执行无效的stat检查。

内容的提问来源于stack exchange,提问作者BPearce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:05:03