如何使用Jenkins/Maven插件生成模式名稱以測試我的應用程序。 我需要此架構名稱是唯一的(不存在於DB - Oracle/SQL中)。 是否有詹金斯獨特的字符串生成器?爲測試生成唯一模式名稱
回答
如果您使用的是Execute Shell
命令,則可以使用BUILD_ID
和BUILD_NUMBER
以及BUILD_TAG
。 Jenkins版本中的BUILD_TAG
將完全獨一無二(它的編號爲jenkins-${JOB_NAME}-${BUILD_NUMBER}
),但可能過長或取決於您的作業名稱,可能包含不適合您數據庫的字符。
但是,這些變量可以用來構造唯一但可識別的名稱,您可以稍後使用它來查看特定運行的數據庫輸出或清理某個作業之前的所有數據庫。
如果你不使用Execute Shell
,那麼Inject environment variables to the build process
選項會將這些相同的變量直接放到構建環境中,在那裏它們可以被你的代碼訪問(假設你可以訪問環境變量)。
數據庫命名
對於Oracle,看來數據庫名稱仍限制爲8個字符(作爲最後一個參考,我發現的),因此你可能需要使用的短靜態字符串附加在它後面的BUILD_NUMBER
,這在shell中很容易創建。
如果您擔心BUILD_NUMBER
變得太大,那麼您可以通過執行像十六進制編碼這樣的操作來減少空間(減少用於相同數字的字符並仍使用保證在ASCII中有效的字符)。
如果這是不夠的,我已經使用base64編碼來存儲需要以ASCII存儲的值,但是對於存儲空間來說太大了。例如,如果您將3個二進制字節編碼爲base64,則會得到4個ASCII字節,您可以將其用作數據庫名稱的一半。這個範圍大約有2400萬個構建,這應該是足夠的,並且解碼很簡單。當然,你必須先將數字轉換爲二進制數才能進行編碼(數字的ASCII版本的base64沒有任何用處)。
這就是我們不使用它的原因。我們需要一些具有最大長度並且會過濾出非法字符的東西 – 2013-05-12 07:38:25
- 1. 生成唯一名稱?
- 2. 爲模型名稱唯一性編寫測試
- 3. 的Xcode 8測試版:可測試名稱必須是唯一
- 4. Maven - 生成沒有分類器名稱的測試罐(測試)
- 5. 鼻子測試生成器創建的測試更改名稱
- 6. 如何爲Tk頂層窗口路徑生成唯一名稱?
- 7. 如何爲每個JSON值生成唯一名稱
- 8. 爲PrimeFaces remoteCommand生成並使用唯一的名稱
- 9. 生成唯一的名稱爲每個在Django表單字段的模板
- 10. Moq單元測試生成器模式
- 11. 如何爲django模型生成唯一的文件名.FileField
- 12. Rake測試期望將表名稱定義爲模型名稱?
- 13. 寫一個克隆函數生成唯一名稱
- 14. 生成唯一
- 15. Twilio試圖爲會議名稱設置一個唯一的名稱
- 16. Azure blob存儲 - 自動生成唯一的blob名稱
- 17. 給動態生成的文本框唯一的名稱
- 18. 如何從JSF clientId生成唯一的JavaScript變量名稱?
- 19. ORA-24408:無法生成唯一的服務器組名稱
- 20. 使用AngularJS動態生成CSS類(使用唯一名稱)
- 21. 保存帶有唯一名稱的生成的Word文件(mailmerge)
- 22. angularjs收音機組唯一名稱生成
- 23. 引用angularjs中生成的唯一id的名稱,firebase,angularfire
- 24. 從字符串生成唯一文件夾名稱的問題
- 25. 分佈式Erlang,我該如何生成唯一的節點名稱?
- 26. SQLAutoCode - 試圖生成模式
- 27. 如何爲PHP中的$ _SESSION組成一個唯一的名稱?
- 28. 生成具有不同測試名稱的報告
- 29. SBT:按名稱生成測試源的輸入任務
- 30. Eclipse插件中動態生成的TestNG測試的名稱
您可以使用shell來生成這樣的字符串,並將此步驟添加到您的工作中。示例shell腳本:var1 =($(openssl rand 100000 | sha1sum)); – patrungel 2013-05-09 07:49:33