【问题标题】:One set of tests for few projects with different parameters一组具有不同参数的项目的测试
【发布时间】:2015-08-26 07:10:01
【问题描述】:

我正在使用 Protractor 和 Jasmine,并希望以最佳方式组织我的 E2E 测试。

例子:

有一套检查注册功能的测试(使用正确的凭据注册,注册为现有用户等)。

我需要在三个不同的项目中运行这些测试。测试相同,但凭据不同。对于一个项目,它可能是注册表单中的 3 个字段,在另一个 - 6 个字段中。

现在一切都以一种非常复杂的方式组织起来:

  • 每个单独的测试都不是作为“它”,而是作为一个函数
  • 有一个函数包含所有测试(测试的函数)
  • 每个文件都有一个带有Describe函数的文件
  • 在该文件中有一个“它”调用包含所有测试的函数
  • 每个项目都有测试套件

我相信有一种做法是如何以正确的方式组织一切,每个测试都在自己的“它”中。所以很高兴看到一些链接或建议。

提前谢谢你!

【问题讨论】:

    标签: jasmine automated-tests protractor e2e-testing


    【解决方案1】:

    由于这是一个广泛的问题,我会将您重定向到几个链接。您可能应该查看 Protractor 的页面对象模型。它将帮助您简化并设置标准,以一种可读且易于使用的方式组织您的测试。这是 Protractor 团队描述的链接。

    但是如果你想知道为什么我们需要使用这样的框架,它有很多缺点,可以通过使用这样的框架来解决。详细解释在这里

    编辑:根据您的 cmets,我觉得您正在尝试制作一个统一的文件/功能,以迎合将使用它的所有套件。为了处理这些事情,请尝试添加一个通用函数(在您的情况下填写表单字段),导出该函数,然后将其引入您的测试套件中。这是它的示例链接-

    希望这会有所帮助。

    【讨论】:

    • 谢谢。可能我的问题还不够清楚。我已经在使用 PageObjects 并且非常完美。问题是现在我在 PageObjects 中也放了期望函数,我认为这是不正确的。
    • @Radost_ 我以为您在寻找一种使用量角器组织 e2e 测试的最佳方法。如果这不是您想要的,请告诉我。
    • 抱歉,我按 Enter 太快了。我已经在使用 PageObjects 并且非常完美。问题是现在我在 PageObjects 中也放了期望函数,我认为这是不正确的。我也可以用“描述”制作一个完美的文件并在其中使用 PageObject。此外,我有三个相似但不同的项目(对于一个项目,我需要在注册表中填写 3 个字段,另外一个 - 6 个)。我不想将一个带有描述的大文件复制到三个不同的套件。我想以某种方式做到这一点,我有一个文件,但为每个项目运行它(使用不同的输入参数)
    • @Radost_ 更新了答案以包含导出和需要功能,您可以使用该功能创建一个文件来为每个项目运行它。
    • 谢谢。这正是我使用的。我将所有测试放在一个中,所以它现在看起来像 code var allFunctionsToTestRegistration = function (inputs) {this.checkRegistrationIsSuccesfull = function(inputs) { expect(...).toBe(true)}code 然后我打电话我的“它”中的那个功能。因此,当我看到来自测试的报告时,我只能从我的单个“it”中看到那个名字,并且所有内容都算作一次测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多