Javascript onResourceRequested无法启动

Javascript onResourceRequested无法启动,javascript,jasmine,phantomjs,karma-runner,karma-jasmine,Javascript,Jasmine,Phantomjs,Karma Runner,Karma Jasmine,我正在使用Jasmine框架和无头浏览器对Karma进行测试 在onCallback中注入javascript文件后,我无法使onResourceRequested被“激发”。我测试了onCallback执行,它被激发,加上页面。injectJs返回true,也就是成功 这是我的Karma配置文件(请查找带有“#”的注释): 如何使onResourceRequested发生在page.injectJs之后 谢谢。同步读取本地文件并将其同步注入页面。没有网络请求,因此无需触发onResourceR

我正在使用Jasmine框架和无头浏览器对Karma进行测试

onCallback
中注入javascript文件后,我无法使
onResourceRequested
被“激发”。我测试了
onCallback
执行,它被激发,加上
页面。injectJs
返回
true
,也就是成功

这是我的Karma配置文件(请查找带有“#”的注释):

如何使
onResourceRequested
发生在
page.injectJs
之后

谢谢。

同步读取本地文件并将其同步注入页面。没有网络请求,因此无需触发
onResourceRequested
事件侦听器。

那么,如何“侦听”加载到页面中的资源?如果您自己加载资源,为什么必须“侦听”它们?在
page.injectJs(data.require)
之前或之后完成你的工作。
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,
    });
};