Ser*_*kov 5 javascript gruntjs protractor
我有一项艰巨的任务来启动自动化测试。逻辑如下:
清理.tmp文件夹 -> 以 .xlx 格式查找所需的数据文件 -> 在文件.tmp夹下以 JSON 格式转换文件 -> 开始对转换后的文件进行测试
它工作正常,直到数据文件变得非常大,并且测试在转换文件的子任务完成之前开始
我如何让咕噜声等到子任务完成,不多/不少?
我已经尝试了几种使convert-data-sheet任务异步但没有任何运气的方法。
1.显然我尝试的第一件事是这个
// register task for converting data sheet
grunt.registerTask('convert-data-sheet', 'task for converting xslx file into json', function(product, tenant, environment, codeBase) {
let done = this.async();
/*
Some code here, not essential to the question
*/
// run conversion for each sheet
for (let i = 0; i < sheetTabs.length; i++) {
dst = path.resolve(__dirname, './protractor/.tmp_files/test_data', `${sheetTabs[i]}.json`);
options.sheet = (i + 1).toString();
convertExcel(src, dst, options);
}
done();
});
// register a task for ui tests
grunt.registerTask('e2e', 'task for protractor tests', function() {
let done = this.async();
grunt.initConfig({
/**
* Long and boring initConfig object
*/
});
// clean .tmp directory
grunt.task.run('clean:tmpFiles');
// generate data json files and other files
grunt.task.run([`convert-data-sheet:${parameters.product}:${parameters.tenant}:${parameters.environment}:${parameters.codeBase}`, 'bake:protractorConfigs']);
grunt.task.run('protractor:configFile');
done();
});
Run Code Online (Sandbox Code Playgroud)
它仍然尝试在创建数据文件之前运行 Protractor
2.这是我当前的代码,它只挂了指定的时间
// register task for converting data sheet
grunt.registerTask('convert-data-sheet', 'task for converting xslx file into json', function(product, tenant, environment, codeBase) {
/*
Some code here, not essential to the question
*/
// run conversion for each sheet
for (let i = 0; i < sheetTabs.length; i++) {
dst = path.resolve(__dirname, './protractor/.tmp_files/test_data', `${sheetTabs[i]}.json`);
options.sheet = (i + 1).toString();
convertExcel(src, dst, options);
}
});
// register a task for ui tests
grunt.registerTask('e2e', 'task for protractor tests', function() {
let done = this.async();
grunt.initConfig({
/**
* Long and boring initConfig object
*/
});
// clean .tmp directory
grunt.task.run('clean:tmpFiles');
// generate data json files and other files
grunt.task.run([`convert-data-sheet:${parameters.product}:${parameters.tenant}:${parameters.environment}:${parameters.codeBase}`, 'bake:protractorConfigs']);
// run protractor with a delay 2000ms to let previous tasks finish
setTimeout(function() {
grunt.task.run('protractor:configFile');
done();
}, 2000);
});
Run Code Online (Sandbox Code Playgroud)
但事实证明,即使是当前的代码也没有达到预期的效果。它只是挂起 2 秒什么都不做,甚至在数据转换开始之前。所以从日志中我看到 - 咕噜声开始 -> 挂起 2000 -> 转换 -> 运行量角器
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |