[英]How to automate testing user-version of npm package instead of running the development version on continious integration?
偶爾會出現模塊的開發版本在我的開發工作區中運行並傳遞到Travis-CI上的情況,但是發布到npm后,結果證明最終用戶軟件包已損壞。
例如,如果您使用應該在dependencies
但在devDependencies
的子模塊,則CI將通過(但是還有很多其他可能的損壞)。
您如何自動化測試呢? 您是否使用外部索具? 是否有秘密模塊? 您有用戶接受度測試套件嗎?
我將Github與Travis-CI結合使用,但是標准設置使用開發安裝。
曾幾何時,我發現npm
將使我發布可卸載的軟件包。 因此,我將一個目標添加到我的Gruntfile
,以執行以下操作:
發出npm pack
以從我的源創建一個包。
進入僅用於測試的目錄(由我的Gruntfile
自動創建),使用npm install <path to the package created in the previous step>
安裝新軟件包。
我有一個發布新版本的目標,該版本只有在上述步驟成功后才能發布。
上面的步驟不能解決您在問題中提到的依賴問題,但是可以輕松地對其進行擴展以解決它。 為此,我將添加一個或多個測試,以使上面第2步中安裝的軟件包調用require
及其所有依賴項。
我建議設置您自己的CI服務器,該服務器本質上做一件事, npm install package ; cd node_modules/package ; npm test
npm install package ; cd node_modules/package ; npm test
npm install package ; cd node_modules/package ; npm test
。 這樣可以確保您的軟件包至少可以在服務器上安裝。
我聽說Jenkins對此非常有幫助(至少,這就是node.js核心團隊正在使用的東西),但是還沒有任何直接的經驗。 我們正計划在幾周內進行設置。
另外,擁有一些依賴於您的外部模塊並對其進行測試會有所幫助。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.