У меня есть тест интеграции с БД, который я использую в Boost Build. Тесту нужны некоторые аргументы командной строки (имя пользователя БД, пароль). Какой лучший способ установить это с помощью Boost Build способом, который настраивается пользователем (с помощью переменных среды, командной строки bjam, user-config.jam)?
Я знаю, что могу сделать это с переменными:
import os ;
local DB_PASS = [ os.environ DB_PASS ] ;
run dbtest : test.cpp : --dbpass $(DB_PASS) ;
Это может быть установлено через командную строку (bjam -s DB_PASS=pass
) или через переменную окружения.
С другой стороны, Boost Build, как правило, выполняет большую часть своей конфигурации через механизм функций. Я мог бы, вероятно, определить новую функцию и таким образом получить данные конфигурации в нужном месте.
Каковы плюсы и минусы каждого подхода? Какой я должен взять? Если функции: как бы я это сделал?
NB. Фактический тест находится в Jamfile, который используется Jamroot, а не непосредственно в корневом файле.
Я бы просто использовал ваше предложение переменных. Они обеспечивают большую гибкость. Я не понимаю, как «особенность» в этом случае может помочь.