我正在开发一个基于 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 时,这也有效。
一旦删除所有 iit
和 ddescribe
调用,所有测试将再次运行。
希望对您有所帮助!
关于angularjs - 如何使用 Angular Scenario Runner 运行测试套件的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196375/