我的量角器conf.js onPrepare函数需要发出一个看起来像这样的http请求,
onPrepare
onPrepare: function(done) { request.get('http://pepper/sysid') .end(function(err, resp){ if(err || !resp.ok){ log("there is an error " + err.message) done() }else{ global.sysid = resp.sysid done() } })
它会引发错误,done is not a function
done is not a function
还有其他方法可以强制在onPrepare测试开始执行之前调用内部回调吗?
onPrepare()可以选择返回量角器在开始执行测试之前将解决的承诺:
onPrepare()
onPrepare可以选择返回一个承诺,量角器将在继续执行之前等待。如果准备工作涉及任何异步调用,例如与浏览器进行交互,则可以使用此方法。否则,量角器不能保证执行顺序,并可能在准备工作完成之前开始测试。
制作一个量角器promise并从退还onPrepare():
promise
onPrepare: function() { var defer = protractor.promise.defer(); request.get('http://pepper/sysid').end(function(err, resp) { if (err || !resp.ok) { log("there is an error " + err.message); defer.reject(resp); } else { global.sysid = resp.sysid; defer.fulfill(resp); } }); return defer.promise; },