2014-09-28 31 views
1

正如標題所說,我想運行一個測試,而不是整個規格。我試圖用簡單的方式是使用的情況是這樣的:如何使用茉莉花2.0從命令行運行單個測試

describe("MyCase",function() { 
    it("has a test",function() { 
     expect(something).toBe(something); 
    } 

    it("has another test",function() { 
     expect(something_else).toBe(something_else); 
    } 
} 

這是保存在一個文件名爲MyCase.spec.js(如果該事項)。我本來以爲,這將有可能只是第一種情況下使用命令行下運行:

jasmine-node --match="MyCase has a test" 

但這apperantly沒有做到這一點。那麼它是如何完成的?

謝謝!

回答

0

它可能不是你需要的東西,但我想建議使用業力/業力 - 茉莉花。 在Karma內,Jasmine被「修補」並提供額外的描述和iit方法。如果您將一個套件重新命名爲ddescribe或將其中一個規格重命名爲iit(優先於ddescribe),則只會執行此套件或規範。關於你的問題,你可以將你的第一個規範重命名爲iit,然後只有這個規範纔會被執行。當然,這隻在開發規範時纔有用。

這樣做的缺點是,人們很容易就會長時間測試一小部分測試套件。所以不要忘記將它重新命名爲通常的版本(沒有雙倍的,沒有雙倍的我)。

5

更改itiit並照常運行測試。 因此只有這個測試會被運行,其他的都會被忽略。

E.g.

iit('should run only this test', function() { 
    //expect(x).toBe(y); 
}); 

同樣的作品描述塊,只需將其重命名爲ddescribe

也可以忽略單一測試通過重命名XIT

And xdescribe作品太

+0

這是一個非常糟糕的解決方案。每次我想分離測試時更改測試,就像運行所有測試一樣繁瑣/慢。 這在我看來是不好的做法 – BentOnCoding 2016-11-02 20:59:05

3

它可能是一個非常古老的頻道,但它會幫助正在尋找使用茉莉花2.0運行特定測試用例的人。使用「fdescribe」運行特定的套件並使用「fit」來運行特定的spec.This將跳過除標記的所有其他測試。

保持眼睛,不要犯fdescribe和適合回購。這裏f描述「焦點」。

對於較低版本,我們可以使用ddescribe,iit,如上面的答案中所述。

+0

花了我一段時間找到這個,謝謝。討厭與.only()和'我'不工作。 – willem 2017-01-20 09:20:33