编程语言
首页 > 编程语言> > javascript – 启动时打开Karma debug.html页面

javascript – 启动时打开Karma debug.html页面

作者:互联网

简短版本:

如何启动Karma并让它在与Karma启动页面相同的浏览器中自动打开debug.html文件?

长版:

我不是使用控制台记录器为Karma的忠实粉丝,所以我一直在使用karma-jasmine-html-reporter-livereload输出到Karma的localhost:9876 / debug.html文件.问题是,每次我开始调试会话时,我都必须单击业力打开的网页中的“调试”按钮.

我想找到一种方法让业力通过gulp任务自动打开debug.html页面.我在多个浏览器中运行测试,因此我希望在每个Karma打开的浏览器中打开debug.html页面作为第二个选项卡.当karma关闭时,我还希望能够关闭该debug.html选项卡.我尝试了很多东西,没有成功.

这是我的gulp任务. ‘watch’任务监视我的源TypeScript文件并将它们编译成javascript ……没什么特别的.

gulp.task('watch-test', ['watch'], function (done) {
    //start a livereload server so that the karma html 
    //reporter knows to reload whenever the scripts change
    livereload.listen(35729);
    gulp.watch('dist/src/**/*.js').on('change', livereload.changed);

    new KarmaServer({
        configFile: __dirname + '/karma.conf.js',
        singleRun: false
    }, done).start();
});

解决方法:

我发现了一种使它永久化的方法虽然它并不完美..你可以在上下文中注入一个javascript:

files: [
    "test/init.js",
    ...
]

并在文件中放入此代码:

(function (window) {
    if (!window.parent.initDone && window.location.pathname === '/context.html') {
         window.parent.initDone = true;
         window.open('/debug.html', '_blank');
    }
})(window)

这将确保窗口仅在第一次运行测试时打开,并且仅在context.html中执行.

您可以在该块中添加任何所需的初始化代码.

标签:javascript,node-js,gulp,debugging,karma-runner
来源: https://codeday.me/bug/20191006/1860620.html