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

巧了我就是萌 提交于 2020-01-01 18:17:12

问题


In my Protractor conf.js file, I'd like to re-use the same spec files multiple times; however, it's seems to not be possible.

Some background:

We are reading test cases from a JSON file, launching reports, then testing grid results and various DOM elements.

All reports have the same format. The primary differences lie in the report titles, data columns, actual data results, etc.

So in my conf.js file, ideally I'd like to re-use the same spec files multiple times - but my understanding is that I cannot do this.

For example, my spec array:

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

I've read this post (http://ramt.in/how-to-run-identical-jasmine-specs-multiple-times-with-protractor/ ) where you can move your spec files into a node module, but 1) I don't want to move all specs files there, and 2) it doesn't work anyway when I move even one spec file into a module export file.

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.

Just wondering if anyone out there has found a solution to this need to re-use spec files multiple times in one conf.js configuration.

Thank you, Bob


回答1:


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.

This would probably be the easiest way to approach the problem. Though, I like the idea of putting specs into modules - it is a plus to reusability overall.

The thing is, jasmine does not allow executing the same test in a single test run. And, from what I understand, there is no easy way to change the behavior.

One of the possible workarounds is to completely restart protractor and, hence, recreate the jasmine testing environment so that the next report-grid-details-spec.js would run in a new jasmine environment - this is something that 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).



来源:https://stackoverflow.com/questions/41884479/protractor-how-to-reuse-the-same-spec-file-for-different-tests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!