如果先前的测试没有失败,则仅运行测试

时间:2015-06-17 07:53:14

标签: protractor e2e-testing

TL:DR;我有一份清单。您可以:添加,删除,编辑和搜索/过滤项目。

如果第一个测试it('shall delete a new item', ..)成功,我想运行我的测试

我有办法做到这一点吗?

2 个答案:

答案 0 :(得分: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;
            }
        }
    }
    

答案 1 :(得分:0)

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

这实际上是测试运行器(Jasmine,Jasmine2等)的一个(缺失)功能,因此具体的解决方案可能会有所不同。如果您使用默认的Jasmine,请参阅How to stop protractor from running further testcases on failure?