簡體   English   中英

如何自動測試用戶版本的npm軟件包,而不是在持續集成上運行開發版本?

[英]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 ,以執行以下操作:

  1. 發出npm pack以從我的源創建一個包。

  2. 進入僅用於測試的目錄(由我的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM