gpt4 book ai didi

javascript - 输出 gulp-qunit 控制台输出到文件

转载 作者:行者123 更新时间:2023-11-30 20:33:06 27 4
gpt4 key购买 nike

我正在使用 QUnit 运行单元测试,并尝试将 QUnit 集成到我们的构建自动化和持续集成过程中。为了让 Atlassian Bamboo 解析测试输出,它要求测试输出位于 xml 文件中。我可以使用 qunit-reporter-junit 插件生成所需 xml 格式的控制台日志。当 Gulp-QUnit 运行我们的 test-runner.html 文件时,它会将 console.log 输出到屏幕。我的问题是我找不到将此 console.log 输出通过管道传输到文件中的方法。

我尝试了以下方法:

使用 gulp-log-capture 插件(什么都不做):

  gulp.task('qunit', function() {

return gulp.src('./qunit/test-runner.html')
.pipe(logCapture.start(console,'log'))
.pipe(qunit())
.pipe(logCapture.stop('build.xml'));
});

将输出通过管道传输到写入流(这会引发错误):

gulp.task('qunit', function() {

return gulp.src('./qunit/test-runner.html')
.pipe(qunit())
.pipe(fs.createWriteStream('build.xml));
});

使用 gulp-out 插件(简单地将输入的 html 传输到新文件中):

gulp.task('qunit', function() {

return gulp.src('./qunit/test-runner.html')
.pipe(qunit())
.pipe(out('build.xml');
});

XML 就在屏幕上,我只需要以某种方式将它放入文件中即可。

最佳答案

事实证明,phantom js 采用了将在执行时运行的类似节点的脚本。我基本上从 phantom-js 的示例目录中获取了 run-qunit 脚本,并将其调整为将控制台输出通过管道传输到 build.xml 文件中。可以在此处找到示例脚本:https://github.com/ariya/phantomjs/blob/master/examples/run-qunit.js

我只是像这样调整了 onConsoleMessage 监听器 (ln48):

page.onConsoleMessage = function(msg) {        
if( msg.search(/xml/) > -1 ) {
fs.write('build.xml',msg);
}
console.log(msg);
};

为了使它作为自动构建过程的一部分运行,我在 Gulp 中使用 exec 插件运行以下任务。

exec = require('child_process').exec;
.
.
.
gulp.task('phantom',function() {
exec('phantomjs ./qunit/run-qunit.js ./qunit/test-runner.html');
});

这两项调整都成功创建了一个 build.xml 文件,Atlassian Bamboo 可以在其流程中读取该文件。

关于javascript - 输出 gulp-qunit 控制台输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50127366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com