为了账号安全,请及时绑定邮箱和手机立即绑定

`go test` 包失败,但单独测试运行良好,包编译正常

`go test` 包失败,但单独测试运行良好,包编译正常

Go
慕村225694 2021-10-18 10:04:34
当我执行go test整个包时,测试失败:$ go test github.com/dm03514/go-edu-db/...# github.com/dm03514/go-edu-db/backendsgo1: internal compiler error: in read_type, at go/gofrontend/import.cc:669Please submit a full bug report,with preprocessed source if appropriate.See <file:///usr/share/doc/gccgo-4.9/README.Bugs> for instructions.FAIL    github.com/dm03514/go-edu-db/backends [build failed]?       github.com/dm03514/go-edu-db/cmd        [no test files]# github.com/dm03514/go-edu-db/httpdgo1: internal compiler error: in read_type, at go/gofrontend/import.cc:669Please submit a full bug report,with preprocessed source if appropriate.See <file:///usr/share/doc/gccgo-4.9/README.Bugs> for instructions.FAIL    github.com/dm03514/go-edu-db/httpd [build failed]?       github.com/dm03514/go-edu-db/logging    [no test files]虽然上述测试无法go install正确构建,但我可以正确运行每个单独的测试:$ go test github.com/dm03514/go-edu-db/backends/backends_test.gook      command-line-arguments  0.025sgo test github.com/dm03514/go-edu-db/httpd/handlers_test.gook      command-line-arguments  0.021s有没有人遇到过这个问题?我是 Go 的新手,为了解决这个问题,我刚刚单独执行了我的每个测试文件。go build 的输出是什么$ go build github.com/dm03514/go-edu-db/...$转到版本是$ go versiongo version xgcc (Ubuntu 4.9-20140406-0ubuntu1) 4.9.0 20140405 (experimental) [trunk revision 209157] linux/amd64
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

这也发生在我身上。我最终只是评论了不同的测试,直到我能够看到有用的输出并看到它何时开始通过。根本原因是在测试完成后,我同时运行的测试 goroutine 正在调用之一t.Errorf(具体来说,我使用的是testify /assert 包,但这最终调用了 t.Errorf)。使用的输出go test -v最终有这个错误信息:

TestTradeReader_Subscribe 完成后 goroutine 失败

对我来说,发生这种情况是因为我正在使用httptest.Server(在我的测试期间同时运行)并且正在检查快速退出且不需要此检查的测试用例的输入。


查看完整回答
反对 回复 2021-10-18
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

可能是例行泄漏。您可能正在修改/更新测试中的全局变量,而不是在第二个测试中恢复。此错误的第二个原因可能是您的测试未在封闭的环境中运行。并在之后进行其他测试。您可以重新构建您的测试,以便给出错误的测试首先运行,以便它成功


查看完整回答
反对 回复 2021-10-18
  • 3 回答
  • 0 关注
  • 402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信