最近使用 Jenkins
进行 CI
持续构建, 发现可以使用 junit
加载测试的情况, 于是想到可否使用 mocha
生成对应的 xml
文件呢?
原来使用 mocha
, 其实就是跑一下看看是否达到预期的目标. 基本方法就是通过 Should
断言问题, 然后打印到控制台就完成了. 批量测试也就是使用 Gulp
+ Gulp-Mocha
根据目录通配符测试, 原理一样.
今天研究了一下, 原来 Mocha
可以生成专门给 CI
提供的 xml
测试结果报告.
这里为了方便, 我就直接使用 Gulp
来说明了, 存放于 gulpfile.js中
:
let name = 'jenkins-mocha'; // 用 gulp 运行的任务名
let src = ['tests/**/*_test.js']; // 测试脚本位置
let filepath = 'docs/jenkins-mocha.xml'; // 生成文件存放位置
let suiteName = 'My Mocha Test'; // 本测试用例的名字
Gulp.task(name, function () {
return Gulp.src(src, {read: false})
.pipe(Mocha({
reporter: 'xunit',
// 这里注意一下, 参数是 output 而不是Gulp-Mocha官方文档给出的 reportFilename
reporterOptions: {output: filepath, suiteName: suiteName},
timeout: ConfigMocha.timeout,
globals: {
should: require('chai').should()
}
}));
});
运行的时候使用 gulp jenkins-mocha
即可运行测试生成 xml
文件给 Jenkins
使用.
Jenkins
调用:
// 当前面执行没问题时执行
stage('Load UnitXml') {
steps {
// 使用通配符是因为可能有很多测试用例生成很多xml文件.
junit 'docs/**/*.xml'
}
}
或者
// 无论前面执行是否成功都执行, 推荐使用本方法
post {
always {
junit 'docs/**/*.xml'
}
}
相关文档: