testing - 在仅适用于某些版本的 golang 中运行测试

标签 testing go version

<分区>

我这里有一个库 ( https://github.com/turtlemonvh/altscanner ),其中包含将自定义扫描仪的功能与 bufio.Scanner 进行比较的测试.特别是,我将我的方法与 the Buffer method 进行比较哪个wasn't added until go1.6 .

我的实际代码适用于 go back to 1.4 的版本,但我想包括这个使用 Buffer 的测试(我也想添加一个基准测试) bufio.Scanner 的功能对象。

如何包含这些使用 go1.6+ 功能的测试,同时仍然允许代码为 go1.4 和 1.5 运行?

我想答案是 using a build flag仅在明确请求时触发这些测试的执行(我确实可以通过 a travis environment variable 访问我的 CI 管道中的 go 版本)。我也可以滥用 the short flag在这里。

有没有更简洁的方法?

最佳答案

发布后几分钟,我想起了 build constraints . Go 有一个内置的约束来处理这种情况,即“go 的版本必须 >= X”。

将该测试移至 a separate file并在顶部添加 //+build go1.6 修复它。

关于testing - 在仅适用于某些版本的 golang 中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41297073/

相关文章:

.net - 如果没有正确的.NET Framework版本,为什么不引发异常?

java - 构建 Grails 应用程序时出错

testing - 网络带宽评估工具

database - 如何创建生产数据库的开发版本以在 Parse 中进行测试

go - 附加到 []interface{} 问题

unit-testing - 运行 Ginkgo 测试套件(在运行任何规范之前设置 BeforeSuite

dart - 如何查看已安装的 Flutter 版本?

testing - 测试时在哪里可以看到 firefoxdriver selenium 启动的内容?

regex - 去测试正则表达式类型或语法

go - 自动生成的代码中的完全限定导入路径