2014-09-28 65 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