问题标签 [ginkgo]
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.
unit-testing - Gomega 的 Equal() 可以处理多个值吗?
我正在测试一个使用 gomega 向服务器发送模拟请求的函数,我想验证 1. 请求已经开始 2. 请求已经完成。为此,我返回两个布尔值。在下面的示例中,它们都应评估为 true,但值可能会发生变化。我试过这个:
但似乎 gomega'sEqual()
不处理多个变量。有没有办法解决?评估两个返回值是不好的做法吗?
go - 银杏包装检测
我正在为全新的 go 应用程序实施测试套件,并决定使用ginkgo。该应用程序具有主要功能和几个包
我ginkgo bootstrap
在每个包文件夹中运行并使用ginkgo generate
. 现在我可以分别为每个包运行测试,即
cd server_pkg; ginkgo
问题是:如何配置我的应用程序以使用单个命令运行主要功能和包的所有测试?
我可以链接命令ginkgo; cd server_pkg; ginkgo ...
,但它看起来不是一个好的解决方案。
go - 银杏跳过规格被视为失败
我使用 Ginkgo 已经有一段时间了,但我发现了一种我不太了解的行为。我有一组规范,当且仅当条件可用时,我才想运行它们。如果条件不可用,我想跳过测试套件。
像这样的东西:
当套件被跳过时,这被视为失败。
我认为应该考虑跳过一项测试。我错过了什么吗?欢迎任何意见。
纳克斯
go - 银杏到 cobertura 和 JUnit
我使用 Shippable 作为我的 CI,我的项目基于 Go 1.11。所有的单元测试都是使用 Ginkgo 和 Gomega 以 BDD 风格编写的。在我的测试管道中,我有类似的东西:
这将创建 Cobertura 格式的覆盖文件和 JUnit 格式的单元测试报告。
在我的项目中,我们有多个测试套件。我打算使用 Ginkgo CLI 来执行覆盖和单元测试,而gocov
不是go test
. 就像是:
现在的问题是我无法将coverage.txt 文件转换为等效的Cobertura 格式XML 文件(可交付需要)和unit.txt 文件到等效的JUnit XML 文件。
我已经看到如何从测试套件生成 JUnit 文件,但在我的项目中,我们有多个测试套件,这将导致多个 JUnit 文件,这是我不想要的。
任何想法,我怎样才能转换和使用它们?
go - 如何使用 Ginkgo 和 Gomega 匹配私有结构类型?
假设我有一个GetQueue
用 GoLang 调用的函数并且取决于配置,它将返回不同类型的队列实现。
是service.Queue
一个接口。两者QueueA
和QueueB
都是这个接口的实现。QueueA.go 看起来像:
我想为该GetQueue
函数(在包外部定义service
)编写一个单元测试,并且我想验证返回的类型是否符合预期。但是,两者QueueA.sevice
都是QueueB.service
私有结构。那么如何验证返回的类型是预期的类型呢?
go - 向 Ginkgo 测试套件发送 SIGTERM 时出现误报
在使用 Ginkgo 框架编写测试时,我注意到按 Cc 终止正在运行的套件会产生误报。
当您查看代码时,您会注意到此测试应在 5 秒后失败。当我在 2 秒后终止它时,套件失败,但在结果中,有 1 个通过测试,0 个失败。
Debian Stretch 和 Ubuntu 18.04 上的 go 版本 1.11.4 和 1.12.4 的行为相同。
套件代码(使用自动生成ginkgo bootstrap
):
测试代码:
测试运行 5 秒时的输出(正确一个):
测试在完成之前终止时的输出(误报):
我希望输出类似于:
FAIL! -- 0 Passed | 1 Failed | 0 Pending | 0 Skipped
或 1 已跳过或挂起,但并不是Passed
特别是测试被写入失败。
实际输出表明失败,但所有测试...都通过了:
FAIL! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
我错过了什么吗?
go - 银杏清理失败
我正在用 Ginkgo 编写测试规范。
我的测试具有以下结构:
我的问题是,断言失败时如何执行清理。如果我为此目的使用 afterEach 块,那么它会对所有测试规范执行相同的清理,这会显示一堆清理消息失败。
用银杏清理失败的推荐方法是什么。
go - 将多个测试数据传递给 ginkgo test.go 文件
我有如下测试方法:
如何使用不同的测试数据测试功能?
testing - 我们是否可以使用控制台输入或任何文件格式的测试数据运行银杏测试用例?
我需要通过控制台或任何文件格式将用户数据传递给银杏测试方法。让我知道方法。
我正在研究表驱动测试,但我正在寻找位于测试用例/脚本之外的测试数据。感谢您分享详细信息。我能理解你的说法,但如果能获得一些示例代码来继续,那就太好了,这是可用的。
请查找样品测试方法: