Bamboo
WebdriverIO 与 CI 系统(如Bamboo)紧密集成。使用JUnit 或Allure 报告器,您可以轻松调试测试并跟踪测试结果。集成非常简单。
- 安装 JUnit 测试报告器:
$ npm install @wdio/junit-reporter --save-dev
) - 更新您的配置以将 JUnit 结果保存到 Bamboo 可以找到的位置(并指定
junit
报告器)
// wdio.conf.js
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/'
}]
],
// ...
}
注意:将测试结果保存在根文件夹之外的单独文件夹中始终是一个好习惯。
// wdio.conf.js - For tests running in parallel
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/',
outputFileFormat: function (options) {
return `results-${options.cid}.xml`;
}
}]
],
// ...
}
所有框架的报告都类似,您可以使用任何框架:Mocha、Jasmine 或 Cucumber。
此时,我们相信您已经编写了测试并生成了 ./testresults/
文件夹中的结果,并且您的 Bamboo 正在运行。
在 Bamboo 中集成您的测试
-
打开您的 Bamboo 项目
创建一个新的计划,链接您的存储库(确保它始终指向存储库的最新版本)并创建您的阶段
我将使用默认阶段和作业。在您的情况下,您可以创建自己的阶段和作业
-
打开您的测试作业,并在 Bamboo 中创建任务来运行您的测试
任务 1:源代码检出
任务 2:运行您的测试
npm i && npm run test
。您可以使用脚本任务和Shell 解释器来运行上述命令(这将生成测试结果并将其保存到./testresults/
文件夹中)任务:3 添加jUnit 解析器任务来解析您保存的测试结果。请在此处指定测试结果目录(您也可以使用 Ant 样式模式)
注意:确保您将结果解析器任务保留在最终部分,以便即使测试任务失败它也会始终执行
任务:4(可选)为了确保您的测试结果不会与旧文件混淆,您可以创建一个任务在 Bamboo 成功解析后删除
./testresults/
文件夹。您可以添加一个类似于rm -f ./testresults/*.xml
的 shell 脚本删除结果或rm -r testresults
删除整个文件夹
完成上述火箭科学后,请启用计划并运行它。您的最终输出将如下所示
测试成功
测试失败
失败并已修复
耶!就是这样。您已成功将 WebdriverIO 测试集成到 Bamboo 中。