2013-10-11 43 views
0

我試圖執行我的節點茉莉花測試的一個子集。Jasmine-node CLI:指定文件匹配參數

我有一個項目結構如下

root 
    + server 
    + invite 
     +specs 
     inviteSendSpec.js 
     inviteConfirmSpec.js 
     .. many more spec files 
    + auth 
     +specs 
     .. many spec files 

我可以通過運行從根用戶身份執行所有測試:

node-jasmine --verbose server/ 

我試圖弄清楚如何使用-m參數,以便我可以運行符合某個文件名稱模式的測試。

例如

node-jasmine --verbose -m invite server/ 

根據我發現的幾個例子,應該運行包含邀請的所有測試。但是,它只是發現一個單一的測試。

如果我嘗試運行類似的變化例如

node-jasmine --verbose -m send server/ 

它會發現沒有測試。

選擇測試子集的正確語法是什麼?

p.s.我正在茉莉節點11.1.0(所以它不是walkdir問題)

回答

2

-m或--match參數確實用於文件名匹配。

我打了幾個小時就碰到了鍵盤,最後找到了cli.js的源文件。

因此,這裏的門票(cli.js,線228):

var regExpSpec = new RegExp(match + (matchall ? "" : "spec\\.") + "(" + extensions + ")$", 'i') 

啊哈!首先,你必須指定--matchall鍵,否則它將使用默認的「spec」前綴。

其次,有沒有辦法可以指定擴展,它們要麼是JS或JS |咖啡| litcoffee如果使用--coffee命令行參數

我的測試文件的後綴unit.js(不要問爲什麼),所以我結束了與

cli.js --verbose --matchall --match unit\. --test-dir C:\MyProject\ 

它做了這項工作。

0

你的文件名是正確的,

從文檔 github.com/mhevery/jasmine-node

:你的規範文件必須命名爲as * spec.js,* spec.coffee 或* spec.litcoffee,與正則表達式 /spec.(js|coffee|litcoffee)$/i匹配;否則茉莉節點不會找到 他們!例如,sampleSpecs.js是錯誤的,sampleSpec.js是正確的。

你只需要運行孔夾:

節點茉莉--verbose服務器/邀請/規格/

節點茉莉--verbose服務器/認證/規格/