我在这里有一个库(https://github.com/turtlemonvh/altscanner),其中包含一个将自定义扫描程序的功能与bufio.Scanner
进行比较的测试。特别是,我将我的方法与the Buffer
method进行了比较wasn't added until go1.6。
我的实际代码适用于返回1.4的版本,但我想要包含此测试(我也想添加一个基准测试),它使用Buffer
函数bufio.Scanner
对象。
我怎样才能包含这些使用go1.6 +功能的测试,同时仍允许代码运行go1.4和1.5?
我认为答案是using a build flag只有在明确请求的情况下触发执行这些测试(我才能通过a travis environment variable访问我的CI管道中的go版本)。我也可以在这里滥用the short flag。
有更清洁的方法吗?
答案 0 :(得分:1)
发布此消息后几分钟,我记得build constraints。 Go有一个内置的约束来处理这个确切的情况,即" go的版本必须是> = X"。
将该测试移至a separate file并在顶部添加//+build go1.6
修复它。