Protractor 量角器-我需要一个配置选项,它在所有功能之后和清理之前运行

Protractor 量角器-我需要一个配置选项,它在所有功能之后和清理之前运行,protractor,Protractor,我想在所有浏览器关闭后在量角器中创建一个报告。 因此,我需要在配置中使用一个选项,该选项将在所有功能之后但在清理全局变量之前运行 另外,我尝试了afterLaunch(),但它在清理后运行。还有onCleanUp(),但它适用于所有功能。onCleanUp将确保您的报告在浏览器完成运行规范之后,但在浏览器被拆除之前出现。这是您在测试期间访问任何更改的全局变量的最后机会,因为这是量角器的最后阶段 正如您所提到的,这将为每个浏览器实例生成一个报告,但是全局变量仅对该浏览器实例是全局的,所以我认为这是

我想在所有浏览器关闭后在量角器中创建一个报告。 因此,我需要在配置中使用一个选项,该选项将在所有功能之后但在清理全局变量之前运行


另外,我尝试了afterLaunch(),但它在清理后运行。还有onCleanUp(),但它适用于所有功能。

onCleanUp
将确保您的报告在浏览器完成运行规范之后,但在浏览器被拆除之前出现。这是您在测试期间访问任何更改的全局变量的最后机会,因为这是量角器的最后阶段

正如您所提到的,这将为每个浏览器实例生成一个报告,但是全局变量仅对该浏览器实例是全局的,所以我认为这是您想要的


如果要聚合所有浏览器的结果,必须在onCleanup中写出每个报告,然后将它们合并到一个shell脚本(或javascript文件)中,该脚本在量角器完成执行后运行。

您可以使用下面的方法

 onComplete: () => {
        console.log('onComplete');
    },
onComplete—所有测试完成后调用的回调函数。如果onComplete返回承诺(可选),则在关闭webdriver之前,量角器将等待承诺得到解决。在onComplete运行时,将完成测试,但全局对象仍然可用


要了解更多信息,可以在
conf.js
中使用此函数。这将在所有套件完成执行后执行

// Close the report after all tests finish
afterLaunch: function (exitCode) {
  return new Promise(function (resolve) {
  });
}

也许你可以在量角器中加入jasmine junit报告。试试这个。谢谢c nishina,但是我有一个为报告编写的自定义方法,我只需要调用它一次就可以了。如果你不使用NPM模块(reporter)。尝试创建一个保存在单独的“.js”中的函数,并在需要时调用该函数。在所有功能完成后,是否会调用该函数一次?因为据我所知,它将在每个浏览器上运行