我正在使用 Jasmine 框架和无头浏览器 PhantomJS 对 Karma 进行测试。
在onResourceRequested
中注入javascript文件后,我无法让onCallback
成为"解雇"}。我测试了onCallback
执行,并且它被触发加上page.injectJs
返回true
,又称成功。
这是 Karma 的配置文件(使用'#'查找评论):
module.exports = function(config) {
'use strict';
config.set({
autoWatch: false,
basePath: '',
frameworks: [
'jasmine'
],
files: [
// my test files
],
exclude: [
],
port: 8080,
browsers: [
'PhantomJS'
],
plugins: [
'karma-phantomjs-launcher',
'karma-jasmine',
],
reporters: ['progress'],
phantomjsLauncher: {
options: {
lastRequest: null,
onCallback: function(data) {
var externalAPI = {
getLastRequest: function() {
return page.lastRequest;
},
clearLastRequest: function() {
page.lastRequest = null;
}
};
if (data.hasOwnProperty('require')) {
return page.injectJs(data.require); // #SUCCEED!!!#
} else if (externalAPI.hasOwnProperty(data)) {
return externalAPI[data]();
}
return false;
},
onResourceRequested: function(request) {
page.lastRequest = request; // #DIDN'T HAPPEN AFTER injectJs succeed......#
}
},
exitOnResourceError: true
},
browserNoActivityTimeout: 10000,
singleRun: true,
colors: true,
logLevel: config.LOG_INFO,
});
};
如何在onResourceRequested
之后让page.injectJs
发生?
感谢。