量角器,Jasmine和首次停止测试失败

时间:2016-05-19 21:12:17

标签: javascript jasmine protractor jasmine-node

在试图弄清楚如何使某些茉莉花期望语句依赖于先前的期望声明时,我发现在Jasmine 2.3.0之前,没有办法。 (参见Stop jasmine test after first expect fails)但是,Jasmine 2.3.0添加了一个选项stopSpecOnExpectationFailure,当设置为true时,将停止对第一次失败的测试。

对此前景感到兴奋,我修改了我的conf.js以包含选项:

/*
 * conf.js
 */
exports.config = {
    framework: 'jasmine',
    specs: ['search-spec.js'],
    useAllAngular2AppRoots: true,
    jasmineNodeOpts: {
        stopSpecOnExpectationFailure: true
    }
};

但这对我不起作用。

在我的测试中,我有:

/**
 * Test option from select element is selected
 */
function verifyOptionSelected(option) {
   var myEl = $('select[value="' + option + '"]';

   expect(myEl.isPresent()).toBe(true, 'Option, ' + option + ', is not a value in the dropdown list. (It might be the text.)');

   expect(myEl.isSelected()).toBe(true, 'Option, ' + option + ', is not selected as expected.');
}

在上面的代码中,将尝试两个expect语句,但如果第一个语句失败,我不需要尝试第二个语句。

有没有人用茉莉花来解决这个问题?

(是的,我知道jasmine-bail-fastprotractor-fail-fast。但是,在我看来,使用内置功能是一种更好的解决方案。)

1 个答案:

答案 0 :(得分:4)

我在protractorjasmine-npmprotractor使用的茉莉花选手)源代码中看到的内容并不像添加stopSpecOnExpectationFailure或{ {1}}配置的jasmine node选项。必须对stopOnFailure应用更改以支持新的protractor茉莉花节点选项。请在Protractor issue tracker中创建问题/功能请求。

我还试图调用stopSpecOnExpectationFailure函数,在throwOnExpectationFailure中设置stopSpecOnExpectationFailure值抛出jasmine.getEnv(),但这些都没有效果。也许,我错过了一些东西,有一种方法可以启用设置。

相关问题