2015-08-30 70 views
0

我有一个数据库集成测试,我正在运行使用增强构建。测试需要一些命令行参数(数据库用户名,密码)。用户可以通过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倾向于通过功能机制来完成其大部分配置。我大概可以定义一个新功能,并以这种方式将配置数据发送到正确的位置。

每种方法的优缺点是什么?我应该选哪一个?如果功能:我会怎么做?

注意:实际测试是在Jamroot使用的Jamfile中,因此不直接在根文件中。

回答

2

我只是使用你的变量的建议。它们提供了很大的灵活性。我不明白这种情况下的“功能”会如何帮助你。

+0

我同意迈克尔。当可能或合理地使用不同的值构建时,以及何时构建产品会不同,您会使用功能。调试或发布,共享或静态,gcc或clang,都是合理的功能。对于数据库密码,您可能不希望为不同密码设置不同的二进制文件集。 –