【问题标题】:WDIO - Selenium - Run Specific Test Before All Others - With Specific CapabilitiesWDIO - Selenium - 在所有其他人之前运行特定测试 - 具有特定功能
【发布时间】:2017-09-26 04:22:41
【问题描述】:

我正在使用 WebDriverIO,我想做以下事情:

  • 在运行任何测试之前运行单个测试 (createNewUsers)
  • 为第一次测试使用特定功能(代理设置)
  • 完成后,为其他所有内容使用一组默认功能

所以我似乎无法弄清楚:

我尝试添加第二组功能并使用exclude 参数来确保它仅适用于该特定规范,但是,我不知道这是否真的可行,以及如何调用该特定规范在我的前块中进行测试 - 所以我使用的功能:

exclude: [ './newUserCreationStage/newStageUsers.js' ],

但是在我的前块中 - 我怎么说运行它(如果可能的话):

before: function (capabilities, specs) {
    expect = require('chai').expect;

    RUN THIS './newUserCreationStage/newStageUsers.js'
},

【问题讨论】:

  • createNewUsers 听起来不像是对我的考验。
  • @MariaInesParnisari - 它实际上是一个函数,但如果需要,我可以将它包装在一个 describe/it 块中
  • Whit TestNG 你可以做测试依赖。如果第一个测试失败,将跳过某些测试。
  • @userMod2 除了 Selenium,您还使用哪些测试框架/库?
  • @ekostadinov - WebDriverIO、Mocha 和 Chai

标签: selenium selenium-webdriver webdriver-io


【解决方案1】:

我会说您的设置需要一些不同的方法。首先看一下 xUnit Fixture Setup Patterns。这个createNewUsers 实际上可以通过 SuiteFixture Setup、Prebuilt Fixture、Setup Decorator 和 Creation Method 来实现。这会将SUT 设置为所需的状态,并且不需要

在运行任何测试之前运行单个测试

更好的是 - 如果您有访问权限,您可以为数据库播种或调用 API 以在测试运行之前加载所有用户、数据以及您需要的任何内容。这也称为Back Door Manipulation。让您的 CI 服务器将所有这些作为一个专门的步骤来处理。

由于您使用的是 Mocha,您可以utilize tags 并以更好的方式组织您的套件和规格。这将允许您根据需要切换具有功能的驱动程序(阅读测试需要,可能需要代理,其他不需要)。我建议也考虑mocha-tagsStrategy pattern 非常适合。它将允许您拥有许多仅在行为上有所不同的相关子类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多