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

标签 angularjs tdd angular-scenario

我正在开发一个基于 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 空白方法来跳过整个套件......但从长远来看这是可行的。

非常感谢!

最佳答案

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

在您要运行的测试中使用 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 的测试。

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

当您将 describe 替换为 ddescribe 以仅运行带有 ddescribe 的 block 时,这也有效。

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

希望对您有所帮助!

关于angularjs - 如何使用 Angular Scenario Runner 运行测试套件的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196375/

相关文章:

javascript - Angular Material VS Materializecss

javascript - 在 Parse 中检索字符串

javascript - AngularJS:模型值更改时更新选择 View

javascript - Angular 单元测试 : Browser is not defined?

javascript - 如何在使用angularjs上传视频之前在浏览器中渲染视频?

python - 尝试学习 TDD - 不太顺利

jquery - 使用 AJAX 的标准事件消息传递系统?

python - 针对 Python Web 开发的 TDD 资源

testing - AngularJS E2E 测试的执行顺序