我有一個節點JS寫在摩卡控制下的CoffeeScript運行快遞應用多個測試。 不幸的是摩卡運行了所有的考試兩次,becouse在同一目錄下我的Jave .coffee和.js文件。 .js文件由我的編輯器與.map文件一起自動生成。如果我需要調試某些東西,這非常方便。摩卡運行測試兩次
如何過濾,只有.coffee或.js文件從目錄中執行而不是兩個都?
我有一個節點JS寫在摩卡控制下的CoffeeScript運行快遞應用多個測試。 不幸的是摩卡運行了所有的考試兩次,becouse在同一目錄下我的Jave .coffee和.js文件。 .js文件由我的編輯器與.map文件一起自動生成。如果我需要調試某些東西,這非常方便。摩卡運行測試兩次
如何過濾,只有.coffee或.js文件從目錄中執行而不是兩個都?
在你的package.json,創建條目類似如下:
"scripts": {
"test": "npm run test-coffee",
"test-js": "mocha -R spec test/*.js",
"test-coffee": "mocha -R spec test/*.coffee"
}
現在可以運行npm test
,npm run test-js
,或npm run test-coffee
。如果你在子目錄的測試,你將要使用find命令時,僅運行測驗你感興趣
摩卡默認運行文件與模式:test/*.{js,coffee}
其中既包括咖啡和js文件。在你的情況下,它會找到每個測試的咖啡和js文件,因此你的測試運行兩次。
您可能需要顯式地設置文件模式,是這樣的:
mocha -R spec "test/*.js"
如果你在子目錄的測試,你可以在模式中使用globstar(**)所示:
mocha -R spec "test/**/*.js"
注意使用雙引號。如果省略雙引號,它們將被shell解釋,並且可能無法匹配子目錄中的文件。使用雙引號將模式傳遞給摩卡,並且mocha正確處理它。
謝謝您的回答。問題是當我使用例如mocha -R spec test/*。coffee時,它只能看到直接位於test /目錄下的測試。沒有處理深埋的文件。任何想法如何克服? – Luman75
是的,就用'find -name測試 「* .js文件」 型的F -exec摩卡-R規格{} +'和'找到測試-name 「* .coffee」 型的F -exec摩卡-R規格{} +' – dankohn
是的,這是事實,它會起作用,但摩卡在這種情況下會單獨進行每項測試,而關於成功和失敗的最終報告並未整合。 – Luman75