javascript - 在循环内运行多个 Protractor 测试

标签 javascript angularjs testing protractor

我有一个页面,可以让用户浏览一系列不同的面板和一些几乎完全相同的测试,除了我想提供的几个不同的输入。我尝试了一种类似于 this question 的方法但是我有超过 1 个 it block ,并且只运行了第一个,而后面的测试都被忽略了。

describe('Page flow test', function() {

    var page    = require('../PageObjects/SomePage.js');
    var configs = require('../Configs.js');

    for(var i = 0; i < configs.length; i++) {
        (function(config) {

            it('should do something', function() {
                expect( config.name ).toEqual( config.nameToExpect );
            });

            it('should find an email', function() {
                page.emailInput.sendKeys( config.email );
                page.emailSearchSubmitButton.click();
                expect( page.emailSearchResult ).toEqual( config.emailToExpect );
            });

            // More tests...

        })( configs[i] );
    }

});

有点发现of a workaround尽管它不太理想。

最佳答案

我有这个为我工作,我能看到我们的代码之间的唯一区别是我们创建自执行函数的方式

for(var i=0; i<filterTypes.length; i++){
  function setFilterUsingCheckBox(n){
    var filterType = filterTypes[n]          

    it('- Should check '+filterType+' filter text is correct', function(){
      var checkedCount = 'All'
        , filterText = filtersBar.filterText(filterType).getText();
         expect(filterText).toBe(checkedCount);
    });

    it ('- Should check the '+filterType+' title is correct', function(){
      filtersBar.openFilter(filterType);
      filtersBar.filterTitleText(filterType).getText().then(function(titleText){
        expect(titleText).toEqual(filterTitle);
      })
    });


  }setFilterUsingCheckBox(i)
}

filter-types 是一个字符串数组,这就是为什么我能够在我的 it block 描述中使用当前的过滤器类型。

不知道为什么你的不起作用,也许比我更了解 JavaScript 的人可以建议,尝试我的实现并让我们知道,我有兴趣知道。如果以上内容对您有用,那很好,但我不会将此标记为答案,因为我没有解释原因。

关于javascript - 在循环内运行多个 Protractor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996532/

相关文章:

php - 代码接收功能和验收测试错误

PHP header 调用后 JavaScript 不运行

javascript - 检测 SPAN 何时*再次*可见

javascript - 如何在 Parse.com 中进行 "like"查询

javascript - ng-repeat 与 JSON 对象不打印

javascript - Angular 表行在编辑后消失

php - Behat,PHP 场景大纲 : outputting param

javascript - 使用javascript将彩色图像转换为黑白图像

javascript - $仅按嵌套对象值过滤

c# - Internals、InternalsVisibleTo 和测试共享行为