量角器 - 如何为不同的测试重用相同的spec文件

时间:2017-01-26 22:57:52

标签: protractor angularjs-e2e

在我的量角器conf.js文件中,我想多次重复使用相同的spec文件;然而,它似乎是不可能的。

一些背景知识:

我们正在从JSON文件中读取测试用例,启动报告,然后测试网格结果和各种DOM元素。

所有报告都具有相同的格式。主要区别在于报告标题,数据列,实际数据结果等。

因此,在我的conf.js文件中,理想情况下,我希望多次重复使用相同的规范文件 - 但我的理解是我不能这样做。

例如,我的s​​pec数组:

specs: [
      'spec/report1-spec.js',
      'spec/report-grid-details-spec.js',
      'spec/report2-spec.js',
      'spec/report-grid-details-spec.js',
      'spec/report3-spec.js',
      'spec/report-grid-details-spec.js',
 ]

我已阅读此帖(http://ramt.in/how-to-run-identical-jasmine-specs-multiple-times-with-protractor/),您可以将规范文件移至node module,但1)我不想移动所有规格那里的文件,2)当我将一个spec文件移动到模块导出文件中时,它无论如何都不起作用。

如果我无法执行此操作,那么我只需将report-grid-details-spec.js代码移动到一个公共page object文件中,并在需要时将其调用。

只是想知道是否有人在一个conf.js配置中找到了多次重复使用规范文件的解决方案。

谢谢你, 鲍勃

1 个答案:

答案 0 :(得分:2)

  

如果我不能这样做,那么我只需将我的report-grid-details-spec.js代码移动到一个公共页面对象文件中,并在需要时调用它。

这可能是解决问题的最简单方法。虽然,我喜欢将规范放入模块中的想法 - 这对整体可重用性来说是一个加分。

问题是, jasmine不允许在单次测试中执行相同的测试。而且,据我所知,没有简单的方法来改变行为。

可能的解决方法之一是完全重新启动量角器,从而重新创建茉莉花测试环境,以便下一个report-grid-details-spec.js在新的茉莉花环境中运行 - 这是protractor-flake project使用的重试失败的测试(它基本上通过命令行重新启动protractor将失败的规范作为逗号分隔列表传递给specs参数source)。