量角器 - 在继续测试之前等待异步任务完成

时间:2016-03-17 01:22:41

标签: javascript angularjs protractor e2e-testing

问题:

我有一个帮助程序库,它从excel中读取数据并返回一个对象数组。这个库是一个异步函数,我无法使用此函数的结果设置全局数组。 我打算将全局数组作为量角器测试的输入源。

有什么办法可以做到这一点吗?任何帮助将不胜感激。

帮助方法:

'use strict';
var exceljs = require('exceljs');
var GetTestData = function(){
    var colName = [];
    var array = [];
    this.getExcelData = function(page){
        var workbook = new exceljs.Workbook();
        return workbook.xlsx.readFile('./TestData/testLogin.xlsx').then(function(){
            var worksheet = workbook.getWorksheet(page);
            var headerRow = worksheet.getRow(1);    
            headerRow.eachCell(function(cell){
                var colObj = {};
                colObj = {header: cell.value, key: cell.value.toLowerCase()};
                colName.push(colObj);
            });
            worksheet.columns = colName;                
            var iter = 0;       
            var rowObj = {};
            worksheet.eachRow(function(row) {           
                if (iter != 0){             
                    if(row.getCell('execute').value == 'Yes'){
                        headerRow.eachCell(function(cell){
                            rowObj[cell.value] = row.getCell(cell.value.toLowerCase()).value;
                        });                         
                    }
                    array.push(rowObj);
                    rowObj = {};
                }           
                iter++;         
            });
            return array;
        });
    };
};

module.exports = function(){
    return new GetTestData();
};

我想使用从此函数返回的数组作为数据源并在其中循环我的测试。

'use strict';
var array;
var TestData = require('../../Libraries/ExcelFn.js');
describe('Login Page', function(){
    beforeAll(function(){
        testData.getExcelData('Login').done(function(result){
            array = result;
            console.log(array); //The array returns fine here
        });
    });

    array.forEach(function(data){
        it('should test for each set of test data', function(){
            //Login Tests here
        });
    });     
});

结果:未找到规格

无论如何我可以如何设置helper方法的结果(可能在beforeLaunch()中的参数中)并使用它来参数化我的测试?

0 个答案:

没有答案