0

TL:博士;我有一个清单。您可以:添加、删除、编辑和搜索/过滤项目。

我只想在第一次测试成功的情况下运行我的测试。it('shall delete a new item', ..)

有没有办法我可以做到这一点?

4

2 回答 2

0

我正在寻找一种更好的方法来做到这一点,但这是我会做的一种hacky方式。

  1. 使用 afterEach 设置条件
  2. 如果条件为假,则从测试返回;

    var firstPassed = true;
    
    it ('first test', function() {
        ....
    });
    
    it('second test', function(){
        if (!firstPassed) return;
        ....
    });
    
    afterEach(function() {
        if(this.results_.description === 'first test'){
            if(this.results_.failedCount !== 0){
                firstPassed = false;
            }
        }
    }
    
于 2015-07-31T22:55:01.507 回答
0

你可以告诉量角器“failfast”。也就是说,一旦一个测试失败,它就应该停止运行后续测试。在这种情况下,不完全符合您的要求,但在技术上可以实现您想要的。

这确实是测试运行器(Jasmine、Jasmine2 等)的一个(缺失)功能,因此具体解决方案可能会有所不同。如果您使用默认值 Jasmine,请参阅如何阻止量角器在失败时运行进一步的测试用例?

于 2015-08-01T06:49:43.013 回答