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

当我执行go test整个包时,测试失败:


$ go test github.com/dm03514/go-edu-db/...

# github.com/dm03514/go-edu-db/backends

go1: internal compiler error: in read_type, at go/gofrontend/import.cc:669

Please 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/httpd

go1: internal compiler error: in read_type, at go/gofrontend/import.cc:669

Please 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.go

ok      command-line-arguments  0.025s



go test github.com/dm03514/go-edu-db/httpd/handlers_test.go

ok      command-line-arguments  0.021s

有没有人遇到过这个问题?我是 Go 的新手,为了解决这个问题,我刚刚单独执行了我的每个测试文件。


go build 的输出是什么


$ go build github.com/dm03514/go-edu-db/...

$

转到版本是


$ go version

go version xgcc (Ubuntu 4.9-20140406-0ubuntu1) 4.9.0 20140405 (experimental) [trunk revision 209157] linux/amd64



慕村225694
浏览 403回答 3
3回答

慕婉清6462132

这也发生在我身上。我最终只是评论了不同的测试,直到我能够看到有用的输出并看到它何时开始通过。根本原因是在测试完成后,我同时运行的测试 goroutine 正在调用之一t.Errorf(具体来说,我使用的是testify&nbsp;/assert 包,但这最终调用了 t.Errorf)。使用的输出go test -v最终有这个错误信息:TestTradeReader_Subscribe 完成后 goroutine 失败对我来说,发生这种情况是因为我正在使用httptest.Server(在我的测试期间同时运行)并且正在检查快速退出且不需要此检查的测试用例的输入。

蛊毒传说

可能是例行泄漏。您可能正在修改/更新测试中的全局变量,而不是在第二个测试中恢复。此错误的第二个原因可能是您的测试未在封闭的环境中运行。并在之后进行其他测试。您可以重新构建您的测试,以便给出错误的测试首先运行,以便它成功
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go