问题标签 [go-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何跳过失败的测试
在进行中,您是否可以跳过已经失败的测试?
语境:
我有一个heisenbug,我目前无法确定其原因。它会导致某些测试有时会失败。通过检查各种日志,我可以识别故障模式。我想做类似的事情:
这些测试非常有价值,我想在 CI 中运行它们,尽管有 heisenbug,所以这只是一个临时的解决方法。
这行不通。如果测试失败,有没有办法追溯跳过测试?
go - 使用 miniredis 模拟 redis 服务器失败
Golang 新手在这里 :)
我在 go-redis 上有一个 redis 客户端包装器,我想测试它是否正常工作。我曾尝试使用 miniredis 来模拟我将要连接的 redis 服务器,但我不断收到错误消息。
当我将所有东西都放在同一个函数中时,它就可以工作了——我可以针对 miniredis 服务运行 go-redis。但是,当我尝试使用我的客户端时,它失败了。
我试过查看 go-redis 和 miniredis 的文档,但找不到任何答案。我也尝试过将 miniredis 服务器定义为全局变量,但这也无济于事。
客户端实现:
测试实现:
我究竟做错了什么?
go - 在哪里存储测试(项目结构 - 最佳实践)?
我们有许多不同的方式来在 GO 中实现项目结构。
我的问题是存储测试实现的最佳方式:
单独(作为
/li>Java
Maven/Gradle标准)到位
/li>ETC...
?
go - 中间件 HTTP 测试在不应该通过时通过
我编写了一些中间件来检查以确保 JWT 令牌有效:
我已经尝试为此编写一些测试,但我只能掌握我哪里出错了,测试应该失败,因为令牌无效但它仍然通过:
有人可以解释我要去哪里错了吗?
go - 包含两个以上用下划线分隔的单词的 go 包声明问题
大家,我对我所看到的感到困惑;我有以下内容tree
:
假设我的模块名称 ( mod.go
) 是gotest
. 内容server.go
:
内容server_integration_test.go
:
最后是我的main
.go`:
当我运行go build
(或go test ./...
)时,我收到以下错误:
但是,如果我将我的更改server_integration_test.go
为:
一切正常。
有人可以解释一下这里发生了什么吗?
go - 为什么 Go 测试阻塞通道不报告死锁
我在使用频道进行测试时遇到了一个奇怪的问题。
在正常的main函数中,下面的代码会报死锁错误。
但是在我的机器上,这个简单的测试似乎永远陷入僵局或阻塞,或者由于我不知道的任何原因而无法退出。我在 Emacs 和终端中都调用了测试,得到了相同的结果。命令是go test -run TestChan\$ . -v -count=1
。我尝试了一个更简单的命令(go test -run TestChan
),但仍然得到相同的结果。我在 Go 操场上尝试过(这里),它报告了死锁错误。我的 Go 环境有问题吗?
-------------------------------------------------- --------------------------------------------------
更新
看来我的问题没有说清楚。情况是:相同的测试在我的机器和 Go 操场上表现不同。现在我设置-timeout 5s
了,但错误信息与 Go 操场上的不同。我发现与本地不同的另一件事是测试运行程序似乎与我本地不同。它在包装之下go-faketime
。
本地输出
去游乐场输出
我的问题是
- 为什么 Go 测试阻塞通道不报告死锁?
- 如果它是按设计工作的(因为同时还有其他 goroutines 运行),那么 Go 游乐场中的相同测试如何报告相同的错误消息,就好像代码在 main func 中运行一样?(这个问题从 Go 频道的领域发散到 Go Playground 如何处理测试)
go - 为什么 t.Fail() 不接受字符串参数?
我正在尝试改进我的 Golang 测试。我正在读这个:https ://ieftimov.com/post/testing-in-go-failing-tests/
我使用t.Fatal("message")
了很多,而我应该使用以下组合:
那么为什么在地球上没有一个电话会导致测试失败并记录原因呢?有没有办法让我将这样的方法添加到 test.Testing 实例?我只想做:
这是否存在,如果不存在,我可以以某种方式添加它吗?
go - 如何在 GoLang 测试用例中查询错误对象?
我正在使用 GRPC/proto-buffers 在 GoLang 中编写我的第一个 API 端点。我对 GoLang 比较陌生。下面是在快乐情况下的 API:
响应为成功:
以下是不愉快情况下的 API:
响应失败:
根据我的应用程序功能,这是完全正确的行为,如下所示:
我有以下两个测试用例来测试快乐路径和不快乐路径:
但是我不知道如何测试测试用例中的错误值。如何测试Code
==InvalidArgument
和Message
== Required parameter 'field1' not provided
?
go - 没有接收器的模拟功能
我有文件util.go
:
我正在使用 编写单元测试testify
,从Foo
. 我想要:
- 嘲笑
helper
- assert mocked
helper
被调用了 1 次
我在https://stackoverflow.com/a/19168875/1661745看到了一些有前途的解决方案,但不确定:
方法 1:将 helper 作为参数传递给Foo
. 我的疑问:testify 需要一个 Mock 结构来 AssertNumberOfCalls,而这里没有结构。
方法 2:为Foo
. 我的疑问:我不知道为 utils 创建一个结构是否有意义。还需要更多的重构,因为调用者Foo
需要一个 utils 结构。
最好的方法是什么?
go - Go 基准输出格式
我的函数名是代表BenchmarkArray1
什么-12
?