【问题标题】:Protractor - how to reuse the same spec file for different tests量角器 - 如何为不同的测试重用相同的规范文件
【发布时间】:2017-01-28 22:19:10
【问题描述】:

在我的 Protractor conf.js 文件中,我想多次重复使用相同的规范文件;但是,这似乎是不可能的。

一些背景:

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

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

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

比如我的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',
 ]

我已经阅读了这篇文章 (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 配置中多次重复使用规范文件的需要。

谢谢, 鲍勃

【问题讨论】:

    标签: protractor angularjs-e2e


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的.. Jasmine 默认不支持.. 我签入TaskScheduler.js .. +1
    • @alecxe - 谢谢。我正在考虑使用 suites 属性创建套件,但它每次都会覆盖我的 e2e 测试报告。
    猜你喜欢
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    相关资源
    最近更新 更多