Skip to content

Latest commit

 

History

History
635 lines (493 loc) · 34 KB

CHANGELOG.md

File metadata and controls

635 lines (493 loc) · 34 KB

Changelog

Tags:

  • 💥 [Breaking Change]
  • 👓 [Spec Compliancy]
  • 🚀 [New Feature]
  • 🐛 [Bug Fix]
  • 📝 [Documentation]
  • 🏠 [Internal]
  • 💅 [Polish]

Note: Gaps between patch versions are faulty, broken or test releases.

See CHANGELOG - v4.

See CHANGELOG - v5.

See CHANGELOG - v6


v7.5.2 (2021-04-26)

🐛 Bug Fix

💅 Polish

📝 Documentation

  • #6755 Add documentation for accessing browser instances via strings (@evilC)

Committers: 4

v7.5.1 (2021-04-21)

🐛 Bug Fix

📝 Documentation

Committers: 3

v7.5.0 (2021-04-20)

🚀 New Feature

🐛 Bug Fix

💅 Polish

  • wdio-config

📝 Documentation

Committers: 6

v7.4.6 (2021-04-15)

💅 Polish

Committers: 2

v7.4.4 (2021-04-14)

📝 Documentation

  • #6708 Update name and link to @wdio/browserstack-service (@sbley)

Committers: 1

v7.4.0 (2021-04-13)

🚀 New Feature

🐛 Bug Fix

  • wdio-devtools-service
  • wdio-reporter, wdio-runner, wdio-spec-reporter, wdio-types
  • wdio-selenium-standalone-service
  • wdio-jasmine-framework
  • wdio-browserstack-service
    • #6683 [BUGFIX] wdio-browserstack-service using the wrong session url when w3c properties are enforced (@sanghun89)

💅 Polish

📝 Documentation

Committers: 5

v7.3.1 (2021-04-08)

🐛 Bug Fix

💅 Polish

  • wdio-types, webdriverio
    • #6673 webdriverio: Allow to use devtools features for Aerokube Selenoid\Moon sessions (@BorisOsipov)

📝 Documentation

Committers: 7

v7.3.0 (2021-03-30)

🚀 New Feature

  • wdio-cli, wdio-config, wdio-reporter, wdio-spec-reporter
  • devtools, webdriverio

🐛 Bug Fix

📝 Documentation

Committers: 6

v7.2.2 (2021-03-22)

🐛 Bug Fix

💅 Polish

Committers: 3

v7.2.1 (2021-03-18)

💅 Polish

  • wdio-cli
  • wdio-appium-service, wdio-applitools-service, wdio-cli, wdio-devtools-service, wdio-jasmine-framework
  • wdio-types, webdriverio
    • #6599 Use a flat namespace for selenium options for finding WebDriver Bidi endpoint (@BorisOsipov)

📝 Documentation

Committers: 2

v7.2.0 (2021-03-16)

🚀 New Feature

🐛 Bug Fix

💅 Polish

  • webdriverio
    • #6574 docs(typings): #6458 use a more suitable return type for waitUntil (@iamkenos)

📝 Documentation

Committers: 4

v7.1.2 (2021-03-11)

🐛 Bug Fix

  • wdio-cli, wdio-cucumber-framework, wdio-jasmine-framework, wdio-local-runner, wdio-mocha-framework
  • wdio-junit-reporter
  • wdio-cli
    • #6573 bugfix: #6569 only install tagged version if requested spec doesnt match semver (@iamkenos)

Committers: 3

v7.1.1 (2021-03-09)

🚀 New Feature

  • wdio-types, webdriverio

💅 Polish

  • wdio-jasmine-framework, webdriverio
    • #6558 docs(typings): #6549 improve typings using overloads - getLocation, getSize (@iamkenos)

📝 Documentation

  • wdio-types
    • #6507 Fix unable to use nativeWebTap in capabilities (@lukyth)

Committers: 3

v7.1.0 (2021-03-05)

🚀 New Feature

🐛 Bug Fix

  • wdio-allure-reporter
    • #6541 Fix test status in allure when several steps are passed and other skipped (@lacell75)
    • #6533 Closes #6531 return correct test status in allure report (@lacell75)

Committers: 2

v7.0.9 (2021-03-01)

🐛 Bug Fix

💅 Polish

📝 Documentation

Committers: 6

v7.0.8 (2021-02-25)

🚀 New Feature

  • devtools
    • #6371 Added goog:chromeOption for passing the debugging port to the devtools chrome launcher (Closes #6370) (@jamesmortensen)

🐛 Bug Fix

📝 Documentation

🏠 Internal

  • Other
    • #6504 Fix failed test from conflicting node type definition (@lukyth)
  • webdriverio

Committers: 7

v7.0.7 (2021-02-18)

🐛 Bug Fix

📝 Documentation

🏠 Internal

  • wdio-cucumber-framework

Committers: 3

v7.0.6 (2021-02-17)

🐛 Bug Fix

📝 Documentation

Committers: 2

v7.0.5 (2021-02-16)

🐛 Bug Fix

📝 Documentation

🏠 Internal

  • devtools, wdio-devtools-service, webdriverio

Committers: 2

v7.0.4 (2021-02-15)

🐛 Bug Fix

  • wdio-cucumber-framework
    • #6441 Ensure that 'title' property is passed down by cucumber framework to reporters (@rickschubert)
  • wdio-cli, wdio-local-runner, wdio-types
    • #6373 @wdio/cli: Ensure watch mode re-runs all specs when the --spec command line option is set and a filesToWatch file is added or changed (@kohlmannj)

💅 Polish

📝 Documentation

🏠 Internal

Committers: 6

v7.0.3 (2021-02-12)

🐛 Bug Fix

Committers: 1

v7.0.2 (2021-02-11)

💅 Polish

  • wdio-config, wdio-runner, wdio-sync, wdio-types, webdriver, webdriverio

Committers: 1

v7.0.1 (2021-02-09)

💅 Polish

🏠 Internal

  • wdio-allure-reporter, wdio-appium-service, wdio-applitools-service, wdio-browserstack-service, wdio-concise-reporter, wdio-crossbrowsertesting-service, wdio-cucumber-framework, wdio-devtools-service, wdio-dot-reporter, wdio-firefox-profile-service, wdio-jasmine-framework, wdio-junit-reporter, wdio-local-runner, wdio-sauce-service, wdio-selenium-standalone-service, wdio-spec-reporter, wdio-sumologic-reporter, wdio-testingbot-service

Committers: 2

v7.0.0 (2021-02-09)

💥 Breaking Change

  • #6302 TypeScript Rewrite
    • As we have moved the complete code base to TypeScript we have rewritten the way how WebdriverIO provides type definitions to you. This has been more or less and internal change that should only affect users using TypeScript and having custom command definitions. In order to have proper type support now you need to add webdriverio/sync to your list of types, e.g.:

      // tsconfig.json
      "types": [
        "node",
        "webdriverio/sync",
        "@wdio/mocha-framework"
      ],

      Custom commands can now be added like this:

      declare global {
          namespace WebdriverIO {
              interface Browser {
                  browserCustomCommand: (arg: number) => void
              }
          }
      }
      browser.browserCustomCommand(42)

      We do not recommend to specify webdriverio or @wdio/sync in there anymore. For more information visit our updated docs on TypeScript Integration.

    • If you use WebdriverIO in multiremote mode to get proper typing you should use the multiremote global variable

    • Alongside with this change we also equipped the testrunner to auto-compile your configuration if TypeScript is detected, this allows to leverage type safety in your WDIO configuration without any additional setup (big thanks for this contribution goes to @r4j4h) 👏 With that you also don't need ts-node/register to be required in your Mocha, Jasmine or Cucumber options, e.g.:

      jasmineOpts: {
          - requires: ['ts-node/register', 'tsconfig-paths/register'],
          + requires: ['tsconfig-paths/register'],
      },
      
    • It is required to have TypeScript v4 or higher

  • #6309 Cucumber Framework update to v7
    • We have updated our Cucumber integration to use Cucumber v7
    • To provide proper type safety we updated the Cucumber hooks to match original Cucumber types
  • #6276 Google Lighthouse Updates
    • We have updated Google Lighthouse to support the latest performance metrics introduced by Google Lighthouse v7

    • There are no default environment changes when running performance tests anymore. If you want to emulate a mobile user (which is a recommended practice) you have to pass these information when running enablePerformanceAudits, e.g.:

      browser.emulateDevice('iPhone X')
      browser.enablePerformanceAudits({
          networkThrottling: 'Regular 3G',
          cpuThrottling: 4,
          cacheEnabled: false,
          formFactor: 'mobile'
      })
    • We added formFactor to the EnablePerformanceAuditsOptions as it has been added to Lighthouse v7 as well, it tweaks the performance results based on which environment you run your tests in to give certain performance factors more weight

    • We added a new command test PWA apps based on Google Lighthouse audits, e.g.:

      const result = browser.checkPWA()
      expect(result.passed).toBe(true)

      Checks the following PWA criterias:

      We have purposely not added the complete set of audits as they require data that can only be captured through additional automation commands. These could interfer with further test processes and skew results and create flakiness which would make integrating these commands difficult.

  • #3407 Automatically run worker with Babel if setup
    • In order to improve the onboarding experience we will now automatically compile the configuration and your test files using Babel or TypeScript
    • This will allow you to have import statements in your config file without any additional setup
  • #6054 Validate W3C Capabilities
    • With the WebDriver protocol being a recommended standard since 2018 we want to move away from usage of outdated capability sets that might confuse WebDriver endpoints
    • This breaking change will throw an error if we detect invalid capabilities when user use a mixture of clear W3C capabilities and outdated JSONWireProtocol capabilities, e.g.:
      capabilities: {
          browserName: 'Chrome',
          platform: 'Windows 10', // invalid JSONWire Protocol capability
          'goog:chromeOptions': { ... }
      }
      will fail this check because vendor capabilities have been used which were introduced by WebDriver while at the same time a JSONWireProtocol capability (platform) has been used too
  • #6236 Update fibers to v5 and drop Node.js support for v10
    • We recommend to continue to use Node.js v12 and higher)

🚀 New Feature

  • #6311 Get Test Coverage Report
    • The @wdio/devtools-service now offers to capture the code coverage of your JavaScript application files. This can help you to identify whether you should write more e2e tests or not. To enable the feature you have to enable it by setting the coverageReporter option for the service:
      // wdio.conf.js
      services: [
          ['devtools' {
              coverageReporter: {
                  enable: true,
                  type: 'html',
                  logDir: __dirname + '/coverage'
              }
          }]
      ]
    • You can also assert the code coverage within your tests using the new getCoverageReport command, e.g.:
      const coverage = browser.getCoverageReport()
      expect(coverage.lines.total).toBeAbove(0.9)
      expect(coverage.statements.total).toBeAbove(0.9)
      expect(coverage.functions.total).toBeAbove(0.9)
      expect(coverage.branches.total).toBeAbove(0.9)

🏠 Internal

  • We have renamed our main development branch from master to main
    • As the WebdriverIO community is committed to be an inclusive community we join the global effort to remove all unnecessary references to slavery and other non-inclusive terms.

💅 Polish

  • #6392 Add Sauce Labs sharable report links in @wdio/spec-reporter

📝 Documentation

  • New Website Design and Documentation Overhaul
    • The project maintainers are constantly striving to provide better documentation and clear descriptions on commands and WebdriverIO functionality. We the v7 release we now also publish an overhauled website design and re-organisation of our docs.
    • You will continue to find the old docs in their respective places: