2016-07-25 45 views
1

我试图把描述性错误消息,并通过失败()函数退出测试运行,但只有部分成功 - 看来我做错了什么...这里是我的代码:量角器 - 正确处理错误...

it('set up internal budget', function(done) { 
    var acceptBudgetButton = element(by.buttonText('Accept Budget')); 
    page.setInternalBudget(); //setting budget values 

    browser.wait(function() { 
     return browser.isElementPresent(acceptBudgetButton); 
    }, 30000, 'Error - Accept Budget button is not visible.'); 
    acceptBudgetButton.click(); 
    done(); 
    done.fail('Unable to setup internal budget. Terminating test run'); 
    }); 

当“接受预算”按钮不可用我的预期,从这个剧本3两件事:

1)请参阅“接受预算按钮不可见”的错误,其次是等待时间out

2)请参阅“无法设置内部预算。终止te st run“error

3)当我们陷入失败时,期望量角器立即存在测试运行。

在现实中,只有第一个期望得到满足。脚本继续运行,我甚至没有“无法设置内部预算”错误...所以它看起来像我的done.fail语句被忽略。

我应该改变什么让我所有的梦想/期望成真?

回答

1

是的,done后没有执行任何操作。我要做的是定义browser.wait()的成功和失败处理程序。沿着这些线:

browser.wait(function() { 
    return browser.isElementPresent(acceptBudgetButton); 
}, 30000).then(
    function() { 
     acceptBudgetButton.click(); 
     done(); 
    }, 
    function() { 
     console.log('Error - Accept Budget button is not visible.'); 
     done.fail('Unable to setup internal budget. Terminating test run'); 
}); 
+0

非常好,谢谢你的回应!我仍然遇到的唯一问题是脚本不会立即退出 - 它会从相同的规范中执行以下所有“its”,并打印出无意义的消息/错误......我想,不可能使量角器退出测试运行fail()函数。但在你的帮助下,我得到了99%的所需 - 我真的很感激它! – Misha

+0

@米沙啊,忘了说明这是默认行为。请查看['jasmine-bail-fast'](https://github.com/goodeggs/jasmine-bail-fast)是否适合您。谢谢。 – alecxe

+0

再次感谢你,我会试试看。只需要注意,npm install jasmine-bail-fast引起了一些相当可疑的警告: - [email protected]多余 npm WARN可选跳过失败的可选依赖项/ chokidar/fsevents: npm WARN notsup不是与您的操作系统或体系结构兼容:[email protected] 注意 - 我在Windows 7上...希望这件事会起作用 - 我会让你知道 – Misha