在我的 Protractor conf.js
文件中,我想多次重复使用相同的规范文件;不过,这似乎不可能。
一些背景:
我们正在从 JSON 文件读取测试用例,启动报告,然后测试网格结果和各种 DOM 元素。
所有报告都具有相同的格式。主要区别在于报告标题、数据列、实际数据结果等。
因此,在我的 conf.js
文件中,理想情况下我想多次重复使用相同的规范文件 - 但我的理解是我不能这样做。
例如,我的规范数组:
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 模块
,但是 1)
我不想移动那里的所有规范文件,并且 2)
当我将一个规范文件移动到模块导出文件中时,它无论如何都不起作用。
如果我做不到,那么我只需将 report-grid-details-spec.js
代码移动到一个通用的page object
文件中并调用需要时随时使用。
只是想知道是否有人找到了解决方案,可以解决在一个 conf.js
配置中多次重复使用规范文件的问题。
谢谢你, 鲍勃
最佳答案
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
不允许在单个测试运行中执行相同的测试。而且,据我了解,没有简单的方法可以改变这种行为。
可能的解决方法之一是完全重新启动 Protractor,从而重新创建 jasmine 测试环境,以便下一个 report-grid-details-spec.js
将在新的 jasmine 环境中运行 -这是protractor-flake
project用于重试失败的测试(它基本上通过命令行将失败的规范作为逗号分隔列表传递给 specs
参数 source 来重新启动 protractor
)。
关于Protractor - 如何为不同的测试重用相同的规范文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884479/