2014-05-13 55 views
17

我已經安裝了Idea Web Storm並且可以運行Karma如果在karam.conf.js中定義了測試規格,則測試成功。通過右鍵單擊菜單在Web Storm中運行單個Karma Jasmine測試

但是,如果我在JS文件,點擊右鍵,選擇「運行MySpec.js」,我得到這個錯誤:

/usr/bin/node MyTestSpec.js 

/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4 
describe('Activate wallet controller --', function() { 
^ 
ReferenceError: describe is not defined 
    at Object.<anonymous> (/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:901:3 

Process finished with exit code 8 

也許是不可能以這種方式運行的JS測試。

這裏是WebStorm的配置: enter image description here

的KT配置鏈接到karma.conf.js文件的工作正如我所提到確定。

任何幫助表示讚賞。

+0

爲什麼使用節點調試配置而不是業務配置? –

+0

那麼,絕對沒有辦法像(https://youtrack.jetbrains.com/issue/WEB-10067)那樣運行一個測試?如果我正在調試一個測試,我想運行那個測試,而不是整個套件。我會認爲這是一個非常常見的工作流程? – David

+1

@David這就是[集中測試](http://jasmine.github.io/edge/focused_specs.html)的目的,就我而言這足夠好... – rixo

回答

1

您不能以這種方式運行karma測試 - 所需的模塊未加載。你想做什麼 - 運行個人測試文件?有沒有辦法通過一個規範文件來直接因果報應 - 見https://github.com/karma-runner/karma/issues/553

如果你喜歡使用Node.js的運行配置運行業力測試,正確的參數是以下幾點:

  • 的Javascript文件:在/ usr/local/bin目錄/人緣

  • 應用參數:啓動karma.conf.js

+1

同意這似乎是不可能的。通過karma.conf.js中配置的內容運行它們效果很好。如果不需要編輯karma.conf.js文件,只需快速運行一個套件即可。 – JamesC

12

我沒有WebStorm-specifc小號olution你 - 但是,如果你想簡單地只能夠運行某些茉莉測試,而不是所有的人,這是可能的,通過使用「focused specs

從本質上講,如果你改變describefdescribeitfit ,茉莉花將只運行帶有f前綴的規格,並忽略其他所有規格。

下面是一個例子:

fdescribe('Spec1', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

describe('Spec2', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

如果你對這個文件運行茉莉花測試中,所有it S IN的Spec1fdescribe塊將被運行。

所以,如果你能得到WebStorm運行所有您的規格,可以使用fdescribefit集中運行的只有特定的人。

只是要小心不要犯與fit你的代碼和fdescribe還在呢,或者你可能會無意中導致您的CI服務器跳過運行大部分的規格:)

+0

我在一週前添加了賞金,這正是我經過更多研究後最終使用的。 – David

+0

還有業力'ddescribe',對於任何感興趣的人 – David

+1

我發現它相當愚蠢,需要捅代碼而不是隻有一個'--grep'選項......真的沒有別的辦法,只能修補測試並確保不要'git add .'? –

0

對於angular2項目,複製karma.conf .js和src/test.ts文件的文件稱爲karma.single.conf.js和src/test.single.ts。

編輯karma.single.conf。將引用src/test.ts的2個位置更改爲src/test.single.ts(文件和圖案)。

在測試中。single.ts文件更改

let context = require.context('./', true, /\.spec\.ts/); 

的正則表達式測試文件或您希望測試

let context = require.context('./', true, /data\.service\.spec\.ts/); 

然後運行 ​​- >編輯配置創建一個噶目標和配置文件更改噶文件。 single.conf.js