2

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

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

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

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

问题是,在现实生活中开始使用 Angular Scenario Runner 后不久,我就完成了 60 个 e2s 测试。运行所有测试需要 1 分钟。

现在,当我编写一个新测试时,每次我想检查测试时,我都必须等待长达 60 秒。

在 Mocka 中,有此选项可以仅使用 .only http://visionmedia.github.io/mocha/#exclusive-tests运行特定测试


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


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

是否有一个技巧可以让 Angular Scenario Runner 只运行测试的一个子集?

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

非常感谢!

4

1 回答 1

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();
    });

});

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

一旦 Jasmine 检测到一个带有 的测试iit,它就会跳过所有带有 的测试it

如果您在定义了一整套测试时只需要测试您正在处理的一个或两个测试,这将非常方便。

当您替换为仅运行带有 的块时,这describeddescribe适用ddescribe

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

希望有帮助!

于 2013-06-19T17:10:07.790 回答