问题标签 [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.

0 投票
1 回答
1184 浏览

go - 如何跳过失败的测试

在进行中,您是否可以跳过已经失败的测试?

语境:

我有一个heisenbug,我目前无法确定其原因。它会导致某些测试有时会失败。通过检查各种日志,我可以识别故障模式。我想做类似的事情:

这些测试非常有价值,我想在 CI 中运行它们,尽管有 heisenbug,所以这只是一个临时的解决方法。

这行不通。如果测试失败,有没有办法追溯跳过测试?

0 投票
2 回答
1126 浏览

go - 使用 miniredis 模拟 redis 服务器失败

Golang 新手在这里 :)
我在 go-redis 上有一个 redis 客户端包装器,我想测试它是否正常工作。我曾尝试使用 miniredis 来模拟我将要连接的 redis 服务器,但我不断收到错误消息。

当我将所有东西都放在同一个函数中时,它就可以工作了——我可以针对 miniredis 服务运行 go-redis。但是,当我尝试使用我的客户端时,它失败了。
我试过查看 go-redis 和 miniredis 的文档,但找不到任何答案。我也尝试过将 miniredis 服务器定义为全局变量,但这也无济于事。

客户端实现:

测试实现:

我究竟做错了什么?

0 投票
1 回答
66 浏览

go - 在哪里存储测试(项目结构 - 最佳实践)?

我们有许多不同的方式来在 GO 中实现项目结构。

我的问题是存储测试实现的最佳方式:

  1. 单独(作为Java Maven/Gradle标准)

    /li>
  2. 到位

    /li>
  3. ETC...

?

0 投票
1 回答
467 浏览

go - 中间件 HTTP 测试在不应该通过时通过

我编写了一些中间件来检查以确保 JWT 令牌有效:

我已经尝试为此编写一些测试,但我只能掌握我哪里出错了,测试应该失败,因为令牌无效但它仍然通过:

有人可以解释我要去哪里错了吗?

0 投票
1 回答
42 浏览

go - 包含两个以上用下划线分隔的单词的 go 包声明问题

大家,我对我所看到的感到困惑;我有以下内容tree

假设我的模块名称 ( mod.go) 是gotest. 内容server.go

内容server_integration_test.go

最后是我的main.go`:

当我运行go build(或go test ./...)时,我收到以下错误:

但是,如果我将我的更改server_integration_test.go为:

一切正常。

有人可以解释一下这里发生了什么吗?

0 投票
0 回答
636 浏览

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 如何处理测试)
0 投票
1 回答
592 浏览

go - 为什么 t.Fail() 不接受字符串参数?

我正在尝试改进我的 Golang 测试。我正在读这个:https ://ieftimov.com/post/testing-in-go-failing-tests/

我使用t.Fatal("message")了很多,而我应该使用以下组合:

那么为什么在地球上没有一个电话会导致测试失败并记录原因呢?有没有办法让我将这样的方法添加到 test.Testing 实例?我只想做:

这是否存在,如果不存在,我可以以某种方式添加它吗?

0 投票
1 回答
82 浏览

go - 如何在 GoLang 测试用例中查询错误对象?

我正在使用 GRPC/proto-buffers 在 GoLang 中编写我的第一个 API 端点。我对 GoLang 比较陌生。下面是在快乐情况下的 API:

响应为成功:

以下是不愉快情况下的 API:

响应失败:

根据我的应用程序功能,这是完全正确的行为,如下所示:

我有以下两个测试用例来测试快乐路径和不快乐路径:

但是我不知道如何测试测试用例中的错误值。如何测试Code==InvalidArgumentMessage== Required parameter 'field1' not provided

0 投票
1 回答
204 浏览

go - 没有接收器的模拟功能

我有文件util.go

我正在使用 编写单元测试testify,从Foo. 我想要:

  1. 嘲笑helper
  2. assert mockedhelper被调用了 1 次

我在https://stackoverflow.com/a/19168875/1661745看到了一些有前途的解决方案,但不确定:

方法 1:将 helper 作为参数传递给Foo. 我的疑问:testify 需要一个 Mock 结构来 AssertNumberOfCalls,而这里没有结构。

方法 2:为Foo. 我的疑问:我不知道为 utils 创建一个结构是否有意义。还需要更多的重构,因为调用者Foo需要一个 utils 结构。

最好的方法是什么?

0 投票
1 回答
292 浏览

go - Go 基准输出格式

我的函数名是代表BenchmarkArray1什么-12