2016-12-23 5 views
0

У меня есть библиотека здесь (https://github.com/turtlemonvh/altscanner), которая включает в себя функцию сравнения тестов пользовательского сканера с bufio.Scanner. В частности, я сравниваю свой подход с the Buffer method, который wasn't added until go1.6.Выполнение теста в golang, который работает только для некоторых версий

Мой фактический код работает с версиями вернуться к 1.4, но я хотел бы включить этот тест (и я хотел бы добавить также тест), который использует функцию Buffer объекта bufio.Scanner.

Как включить эти тесты, которые используют функции go1.6 +, но при этом разрешающий запуск кода для go1.4 и 1.5?

Полагаю, что ответ using a build flag инициирует выполнение этих тестов только при явном запросе (и у меня есть доступ к версии go в моем конвейере CI через a travis environment variable). Я мог бы также злоупотреблять the short flag здесь.

Есть ли более чистый подход?

+0

Спасибо @icza - я пропустил это раньше. – turtlemonvh

ответ

1

Через несколько минут после публикации этого я вспомнил о build constraints. Go имеет встроенное ограничение, которое обрабатывает этот точный случай, то есть «версия go должна быть> = X».

Перемещение этого теста в a separate file и добавление //+build go1.6 наверху исправлено.