2015-08-30 67 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,都是合理的功能。對於數據庫密碼,您可能不希望爲不同密碼設置不同的二進制文件集。 –