Могу ли я установить test_arg по умолчанию для go_tests и переопределить из CLI? - PullRequest
0 голосов
/ 05 июня 2018

Я использую gazelle для генерации файлов BUILD для пакета go, в котором есть не-каталоги.

Я бы хотел добавить -test.short к запускам go_test по умолчанию, а затем включить его обратновыкл., необязательно, из CLI.

Добавление --test_arg = "- test.short" в CLI не работает, поскольку оно передается в не-Go тесты.

Если яЯ мог бы добавить что-то в WORKSPACE, которое модифицировало бы аргументы по умолчанию для go_test на основе выбора, я был бы хорош здесь.Или, если бы я мог убедить Газель сгенерировать my_go_test вместо go_test, я мог бы сделать Skylark.Я что-то упустил?

1 Ответ

0 голосов
/ 29 июня 2018

Я думаю, что вы можете использовать Bazel's config_setting и select, чтобы сделать эту работу.config_setting позволяет вам определять предикат, который является истинным или ложным, в зависимости от аргументов командной строки.Вы можете предоставить --define аргумент, который config_setting будет проверять.Затем вы можете при желании передать аргумент тестам, используя select.

Что-то подобное может работать для вас.Это передаст аргумент -test.short в тест, если вы передадите --define=short=true в командной строке.По умолчанию аргумент не передается.

config_setting(
    name = "short",
    values = {
        "define": "short=true",
    },
)

go_test(
    name = "go_default_test",
    srcs = ["hello_test.go"],
    args = select({
        ":short": ["-test.short"],
        "//conditions:default": [],
    }),
)
...