I have a file containing some tests that should be run on Go 1.5+.
I am able to get the Go runtime version using runtime.Version()
and doing various comparisons.
However, the test file imports golang.org/x/net/http2
. The http2
package requires request.Cancel()
from net/http
, but that is only available on Go 1.5+.
That causes these errors in my CI environment causing the build to fail:
../../../golang.org/x/net/http2/transport.go:214: req.Cancel undefined (type *http.Request has no field or method Cancel)
../../../golang.org/x/net/http2/transport.go:218: req.Cancel undefined (type *http.Request has no field or method Cancel)
../../../golang.org/x/net/http2/transport.go:777: req.Cancel undefined (type *http.Request has no field or method Cancel)
I tried adding // +build go1.5
to the top of the file, but it didn't work.
Is there anyway I can limit a unit test file so that it is built and tested only on Go 1.5+ systems?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…