簡體   English   中英

如何從node.js中的一個“npm test”命令運行mocha和mocha-phantomjs測試?

[英]How to run mocha and mocha-phantomjs tests from one “npm test” command in node.js?

我有幾個節點包可以在node.js環境中運行,也可以在瀏覽器中運行。 現在我有兩個單獨的測試(針對每個環境)。 使用npm test命令運行這些測試的最佳方法是什么? 另外我想將這些包添加到travis。

我正在使用mochamocha-phantomjs

節點測試命令

node ./node_modules/mocha/bin/mocha ./test/node/index.js --reporter spec

瀏覽器測試命令

node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html

我嘗試了什么:

  1. 將這些命令添加到以分號分隔的npm test腳本中
    • 問題:當第一個腳本中出現錯誤但第二個腳本中沒有錯誤時,命令退出0並傳遞travis構建。
  2. 讓node命令在npm test腳本中測試,並為瀏覽器測試創建自定義腳本。 然后將這兩個命令( npm testnpm run-script test-browser )添加到travis.yml作為數組。
    • 問題:用戶必須手動運行兩個獨立的測試腳本。
  3. 讓node命令在npm test腳本中npm test ,並將瀏覽器測試添加到npm posttest命令。 Travis.yml將只有一個腳本,用戶也必須運行一個腳本(每個人都很高興)。
    • 問題:感覺不對,所以我想知道是否有更好的方法。

我喜歡以下內容:

  "scripts": {
    "test": "npm run test-node && npm run test-browser",
    "test-node": "mocha -R spec ./test/node/index.js",
    "test-browser": "mocha-phantomjs ./test/browser/index.html"}

&&僅在第一次通過時運行第二個,如果需要,您可以單獨運行。 請注意,npm總是使用相對的mocha (在node_modules內),而不是全局的mochamocha-phantomjs直接調用mochamocha-phantomjs沒有任何害處。 使用mocha的-b選項可以更有效地保釋,一旦遇到錯誤就會退出。

來到這里尋找有關使用karma配置npm信息。 @ dankohn的回答可以這樣調整:

"scripts": {
  "test": "npm run test-node && npm run test-browser",
  "test-node": "karma run",
  "test-browser": "karma start --single-run"
}

希望這有助於其他人。

您還可以使用npm-run-all包:

npm install npm-run-all --save-dev

"scripts": {
  "test": "npm-run-all test-mocha test-mocha-phantomjs",
  "test-mocha": "mocha ./test/node/index.js --reporter spec",
  "test-mocha-phantomjs": "mocha-phantomjs ./test/browser/index.html"
}

它將運行mochamocha-phantomjs本地副本。 Twitter引導程序使用此庫進行開發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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