如何使用Angular Scenario Runner运行测试套件的子集?

Adi*_*ban 2 tdd angularjs angular-scenario

我正在开发一个基于TDD的应用程序.

对于服务器端来说一切都很好,因为Python测试运行器很棒.

对于JS,我开始使用mocha也很棒.

我用Karma和Angular Scenario Runner编写了我的第一个测试,它也很棒.

问题是,在现实生活中开始使用Angular Scenario Runner后不久,我最终进行了60次e2s测试.运行所有测试需要1分钟.

现在,当我写一个新测试时,每次我想检查测试时,我都要等待60秒.

在Mocka中,有一个选项,只能使用.visionly运行特定的测试http://visionmedia.github.io/mocha/#exclusive-tests


看起来像Angular Scenario Runner被简要记录,但不知何故模仿Jasmine.


查看Angular Scenario Runner代码我只能找到xit定义,用于跳过测试.

是否有一个技巧要求Angular Scenario Runner仅运行测试的子集?

我已经实现了一个xdescribe空白方法来跳过整个套件......但从长远来看这是可行的.

非常感谢!

jva*_*emo 5

是的,您可以运行一部分测试.

使用iit而不是it在您想要运行的测试上,将跳过其他测试.

例:

describe('TestCtrl', function() {

    var $scope;

    iit('should have scope', function() {
        expect($scope).toBeDefined();
    });

    it('should have scope', function() {
        expect($scope).toBeDefined();
    });

    it('should have scope', function() {
        expect($scope).toBeDefined();
    });

});
Run Code Online (Sandbox Code Playgroud)

这将导致仅运行第一个测试而跳过其他测试.

一旦Jasmine检测到测试iit,它将跳过所有测试it.

如果您在定义了一整套测试时只需测试一个或两个正在进行的测试,那么这非常方便.

当您更换这也适用describeddescribe只运行与块ddescribe.

一旦删除所有iitddescribe调用,所有测试将再次运行.

希望有所帮助!