unit-testing - 如何在 golang 中动态跳过测试?
问题描述
我们在 HTTP 服务器上有一个特殊的文本文件,其中包含我们希望在运行 golang 测试时跳过的文件名和测试函数。
我必须构建一些东西来下载该测试文件,解析应该跳过的文件名和测试函数,然后最终运行我们的 go 测试并正确跳过在输入文件中找到的测试函数。
在golang中进行这项工作的正确方法是什么?
(我意识到这听起来像是一种不寻常的跳过方式,但我们真的希望按照我所描述的那样完成这项工作,原因与这个问题无关。)
解决方案
您可以使用 (*testing.T).Skip() 函数跳过测试用例。你可以在 go 的测试文件的 init 函数中下载测试文件。然后解析并加载映射或数组中的函数名称。在运行每个用例之前,检查测试用例是否包含在跳过列表中,如果需要则跳过。
// Psuedo code -> foo_test.go
var skipCases map[string]bool
func init() {
// download and parse test file.
// add test case names which needs skipped into skipCases map
}
func TestFoo(t *testing.T) {
if skipCases["TestFoo"] {
t.Skip()
}
// else continue testing
}
推荐阅读
- python-3.x - 在 Python 中遍历多级字典
- c# - C# 将文件上传到 azure blob 存储中的文件夹中
- java - 活动中的两个对象,修改一个会自动修改另一个
- node.js - 为什么新版本的 Mongo 与 3.2 相比非常慢
- openstreetmap - 如何仅通过部分搜索找到一个城市?
- openshift - 将输入密码安装到 OpenShift 构建配置中
- javascript - 代码读取下一个结果并在两者之间循环,没有明显的原因
- javascript - 音频不会在 A-Frame 中播放
- python - 从数据框中提取值
- batch-file - 在批处理文件中检查 VPN 状态