量角器 - 如何为不同的测试重复使用相同的规范文件

Protractor - how to reuse the same spec file for different tests

在我的 Protractor conf.js 文件中,我想多次 re-use 相同的规格文件;然而,这似乎是不可能的。

一些背景:

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

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

所以在我的 conf.js 文件中,理想情况下我想 re-use 多次相同的规范文件 - 但我的理解是我不能这样做。

比如我的spec数组:

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',
 ]

我读过这个 post (http://ramt.in/how-to-run-identical-jasmine-specs-multiple-times-with-protractor/ ),您可以在其中将规范文件移动到 node module,但是 1) 我不想移动所有规范文件都在那里,而且 2) 即使我将一个规范文件移动到模块导出文件中,它也不起作用。

如果我做不到,那么我将把我的 report-grid-details-spec.js 代码移动到一个通用的 page object 文件中,并在需要时调用它。

只是想知道是否有人找到解决方案来解决这种需要在一个 conf.js 配置中多次 re-use spec 文件的问题。

谢谢, 鲍勃

If I can't do it, then I'll just move my report-grid-details-spec.js code into a common page object file and call it whenever it's needed.

这可能是解决问题的最简单方法。不过,我喜欢将规范放入模块的想法 - 它对整体可重用性有好处。

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

可能的解决方法之一是完全重新启动量角器,因此重新创建 jasmine 测试环境,以便下一个 report-grid-details-spec.js 将 运行 在新的 jasmine 环境中 - 这是 protractor-flake project uses to retry the failing tests (it basically restarts protractor through command-line passing the failing specs as a comma-separated list to the specs argument, source).