简短版:
如何启动 Karma 并让它在与 Karma 起始页相同的浏览器中自动打开 debug.html 文件?
长版:
我不太喜欢使用控制台报告器来记录 Karma,所以我一直在使用 karma-jasmine-html-reporter-livereload输出到 Karma 的 localhost:9876/debug.html 文件。问题是,每次我开始调试 session 时,我都必须单击 karma 打开的网页中的“调试”按钮。
我想找到一种方法让 karma 通过 gulp 任务自动打开 debug.html 页面。我在多个浏览器中运行测试,因此我希望 debug.html 页面在 Karma 打开的每个浏览器中作为第二个选项卡打开。我还希望能够在 karma 关闭时关闭该 debug.html 选项卡。我尝试了很多东西,但没有成功。
这是我的 gulp 任务。 “监视”任务监视我的源 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();
});
最佳答案
我找到了一种使它永久化的方法,尽管它并不完美。你可以在上下文中注入(inject)一个 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 中执行。
您可以在该 block 中添加任何您希望的初始化代码。
关于javascript - 启动时打开 Karma debug.html 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023535/