【问题标题】:Running a test in golang that only works for some versions [duplicate]在 golang 中运行仅适用于某些版本的测试 [重复]
【发布时间】:2016-12-23 15:44:53
【问题描述】:

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

我的实际代码适用于回到 1.4 的版本,但我想包含这个使用 bufio.Scanner 对象的 Buffer 函数的测试(我还想添加一个基准测试)。

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

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

有更清洁的方法吗?

【问题讨论】:

  • 谢谢@icza - 我之前错过了那个。

标签: testing go version


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多