Steward v3.0.0-beta Release Notes

Release Date: 2021-03-20 // about 3 years ago
  • ➕ Added

    • --parallel-limit (-l) option of run command to allow limiting maximum number of tests being run simultaneously.
    • ✅ Show test duration in timeline tooltips.
    • 👍 PHP 8 support.

    🔄 Changed

    • Require PHP 7.3+ and Symfony 5 components.
    • ⚡️ Update to namespaced PHPUnit. Set minimal required version to PHPUnit 8.5.
    • 👉 Use php-webdriver 1.8+ with W3C WebDriver support.
    • ⚡️ Methods now uses strict type-hints and return type-hints. Inherited classes and interfaces (eg. CustomCapabilitiesResolverInterface, OptimizeOrderInterface etc.) may require to be changed in accordance with this.
    • ✅ Simplified and improved test output.
    • RunTestsProcessEvent (dispatched from run command when initializing PHPUnit processes) now contains array of environment variables instead of ProcessBuilder. Use setEnvironmentVars() method to change the variables passed to the process.
    • 0️⃣ Default browser size is now defined using class constants instead of class variables. To override the default, instead of public static $browserWidth = ...; use public const BROWSER_WIDTH = ...;.
    • 💻 When test class constants defining default browser width (BROWSER_WIDTH) or height (BROWSER_HEIGHT) is set to null, no default browser window size will be set on test startup.
    • 🔧 Don't hardcode timezone to Europe/Prague. Timezone is now used based on your PHP settings (date.timezone).
    • Server URL now must be provided including URL prefix (if it has one, like /wd/hub) - eg. http://foo.bar:4444/wd/hub. This means the /wd/hub part is now never auto-amended.
    • 📦 Package symfony/polyfill-mbstring now provides mbstring functions even if PHP mbstring extension is not installed.
    • 💻 Read annotations (like @group, @noBrowser etc.) using different and more-robust underlying libraries.

    🛠 Fixed

    • 💻 Remote server running in W3C-protocol mode (eg. Selenium v3.5.3+) was erroneously detected as BrowserStack cloud service.
    • --xdebug option did not have any effect unless passed as the last option.
    • Properly auto-detect port 443 (not 80) when https server URL is used as --server-url.
    • ✅ Do not start browser for test skipped because it was depending on some already failed test (using @depends annotation).
    • ✅ Parsing the latest Selenium server version in install command.
    • 🖨 Do not print Error closing the session, browser may died. after Firefox closes the error.

    ✂ Removed

    • TestUtils class which was already deprecated in 2.1.
      • Instead of TestUtils::setSelect2Value() use directly the new Select2 component and selectByVisiblePartialText() method.
      • Instead of TestUtils::getFixturePath() use Facebook\WebDriver\Remote\FileDetector instead.
      • Instead of TestUtils::sleep() use AbstractTestCase::sleep() method instead.
    • getConfig() method of ConfigProvider. Call the property instead directly on an instance of the ConfigProvider.
    • 🔧 --fixtures-dir option of the run command, fixtures_dir option of configuration file and ConfigProvider->fixturesDir variable. They were deprecated in version 2.1.0 and no longer used since.
    • UniqueValue component. (You may use Faker or some other library for similar use-case.)
    • AbstractTestCaseBase class. It should probably not affect anything, as it was only used internally.
    • ↪ Workarounds for legacy Firefox (version 47 and older) which are no longer needed.
    • 👍 PhantomJS support.

Previous changes from v2.3.5

  • 🔄 Changed

    • Replace facebook/webdriver with its successor php-webdriver/webdriver.