我有一个Jenkins作业,它通过Nightwatch.js框架在Browserstack上运行Selenium测试。我们有一套完整的测试程序,可以让守夜人在不同的进程中运行,并且我们需要一种在所有测试运行后将通过/失败值返回给Jenkins的方法。
我一直在尝试使用Nightwatch挂钩teardown在每个模块的末尾运行一段代码if(this.results.failed) { take action },但是我无法弄清楚需要采取什么措施才能使Jenkins作业可以访问该故障。
teardown
if(this.results.failed) { take action }
我最初的想法是创建一个环境变量,并在测试失败时将其设置为false,但是我认为每个进程都在单独的子shell中运行,因此无法访问由测试模块创建/修改的变量。
我的第二个想法是在globals模块中创建一个计数器,但是该值在被global after方法引用时不会按预期增加。
after
如果控制台输出包含字符串“ TEST FAILURE”,我可以使用Jenkins Log Parser插件解决此问题,从而使测试失败。
这是通过创建一个包含一行的规则文件来完成的:
error /TEST FAILURE/