我正在克隆一个私人围棋项目。在代码编辑器和运行 golangci-lint 时出现以下错误。代码编辑器截图错误golangci-lint 截图错误示例代码是这样的:func TestAService(t *testing.T) { ... err := service.AService() if err != nil { t.Errorf("Error on executing the test cases %w", err) }}go 项目在其他笔记本电脑上运行良好,但我使用它的那个有这个错误。两台笔记本电脑使用的go版本是:go 1.17
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您发布的屏幕截图不是错误,它们是来自 IDE 的关于代码中潜在问题的警告。
但是testing.T.Errorf
不支持%w
(fmt.Sprintf
和它接受和不接受的一样),所以警告是正确的。
这些消息不会阻止您的代码构建和运行,但在出现错误的情况下,字符串的格式将被关闭。
如果您运行代码,并且出现错误,您将得到类似的结果(后面的部分%!w
将取决于您拥有的确切错误值)。
Error on executing the test cases %!w(*errors.errorString=&{some error})
您收到的具体警告可能是 new 1,但我不相信这个错误代码在任何版本的 go. 当然,由于大多数测试错误通常是看不到的(因为测试通过了),所以这个缺陷可能一直是不可见的。
修复方法是将%w
(wrap error)替换为%v
(format object 以默认方式,对于错误将使用其字符串形式)。
- 1 回答
- 0 关注
- 239 浏览
添加回答
举报
0/150
提交
取消