【发布时间】:2018-03-17 16:52:38
【问题描述】:
我有一份 Jenkins 工作,通过 Nightwatch.js 框架在 Browserstack 上运行 Selenium 测试。我们有一整套测试,nightwatch 在单独的进程中运行,我们需要一种方法在所有测试运行后将通过/失败值返回给 Jenkins。
我一直在尝试使用 Nightwatch 钩子 teardown 在每个模块末尾使用 if(this.results.failed) { take action } 运行一段代码,但我不知道我需要采取什么行动才能使Jenkins 作业可访问的故障。
我最初的想法是创建一个环境变量,并在测试失败时将其设置为 false,但我认为每个进程都在单独的子 shell 中运行,因此无法访问测试模块创建/修改的变量。
我的第二个想法是在 globals 模块中创建一个计数器,但是当被全局 after 方法引用时,该值不会按预期增加。
【问题讨论】:
-
我对nodejs没有太多经验。但如果您可以使用 0 以外的状态码退出,您的詹金斯作业将失败。试试
{take action} -
我确实试过了,我们正在使用 gulp-nightwatch 模块,结果如果您以 status != 0 退出测试,gulp-nightwatch 不会向控制台输出任何详细信息.它只打印 gulp-nightwatch 遇到错误,并且该测试套件的报告器无法运行。
标签: node.js selenium jenkins nightwatch.js browserstack