All Versions
26
Latest Version
Avg Release Cycle
100 days
Latest Release
1127 days ago

Changelog History
Page 1

  • v3.0.0-beta Changes

    March 20, 2021

    โž• 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.
  • v2.3.5 Changes

    January 20, 2020

    ๐Ÿ”„ Changed

    • Replace facebook/webdriver with its successor php-webdriver/webdriver.
  • v2.3.4 Changes

    July 26, 2018

    ๐Ÿ›  Fixed

    • โœ… Backport visibility fix of setUp() and tearDown() methods of AbstractTestCase (to eg. allow use of lmc/coding-standard in projects using Steward).
  • v2.3.3 Changes

    March 12, 2018

    ๐Ÿ›  Fixed

    • ๐Ÿš€ Selenium server releases were incorrectly parsed, meaning steward install command will detect version 3.9.1 as the latest one (even though there are already released newer versions of Selenium server).
  • v2.3.2 Changes

    December 02, 2017

    ๐Ÿ”„ Changed

    • Increase minimal required version of PHPUnit and nette/reflections to maintain PHP 7.2 compatibility even with lowest possible versions of dependencies.
  • v2.3.1 Changes

    October 30, 2017

    ๐Ÿ›  Fixed

    • HTML timeline generated using generate-timeline command was not working properly in Safari.
  • v2.3.0 Changes

    October 11, 2017

    ๐Ÿ”„ Changed

    • If url endpoint (/wd/hub) is passed as part of server URL, it is automatically trimmed, as it is not necessary and will cause connection error.

    ๐Ÿ›  Fixed

    • โœ… Base directory (which affects default paths to tests, logs etc.) is now properly detected even when Steward is not installed in /vendor directory.
    • 0๏ธโƒฃ Don't rely on default path to PHPUnit binary (vendor/bin/phpunit) to allow custom bin-dir and vendor-dir Composer settings.
  • v2.2.1 Changes

    June 06, 2017

    ๐Ÿ›  Fixed

    • ๐Ÿ Minor Windows compatibility issues (dir paths passed to run command now respect system directory separator etc.).
    • Compatibility with Symfony/Console 3.3 (--xdebug option behavior was incorrect with symfony/console 3.3.0).
  • v2.2.0 Changes

    May 12, 2017

    โž• Added

    • ๐Ÿ”ง Configuration file support ๐ŸŽ‰. Useful for global Steward configuration which doesn't change for different runs. Place steward.yml or steward.yml.dist to base directory or use -c/--configuration option to define custom path to configuration file. Supported options are currently:
      • capabilities_resolver (given class must implement new CustomCapabilitiesResolverInterface)
      • tests_dir
      • logs_dir
      • fixtures_dir
    • Event command.pre_initialize, triggered before initialization of any command is started.
    • Capabilities passed using --capability CLI option could now be forced to be specified as an string (by encapsulating the value into additional quotes).
    • โœ… Print total execution time at the end; in -vv and -vvv modes print also execution after each testcase is finished.
    • โœ… Show total execution of each testcase when viewing result.xml file via browser (currently only execution time of each test was shown). Also show full test name (including testcase name) when hovering over its name.

    ๐Ÿ”„ Changed

    • Capabilities are now resolved using CapabilitiesResolver class.
    • Require PHPUnit 5.7.
    • โœ‚ Remove dependency on unmaintained Configula library (and internally reimplement configuration options retrieval).
    • ๐Ÿ‘Œ Improve install command output (eg. to always include path to downloaded file).
    • ๐Ÿšš Use custom method Strings::toFilename to convert class name to file name (and remove direct Composer dependency on nette/utils).

    ๐Ÿ›  Fixed

    • Attempting to download not existing Selenium server version (with install command) will not create empty jar file but only show an error.
    • โœ… Do not throw misleading exception "Test case must be descendant of Lmc\Steward\Test\AbstractTestCase" when invalid data provider is used.
    • โœ… Debug messages about destroying WebDriver instance on the end of each test were printed to the output before output of the actual tests.
    • ๐Ÿ”Š Logs dir was not passed to PHPUnit processes, causing JUnit log files to be always written to logs/ directory.
  • v2.1.0 Changes

    January 16, 2017

    โž• Added

    • โœ… Command generate-timeline to generate timeline-based visualization of test run into HTML file.
    • โœ… When test is started, url of the executing node is stored in the results.xml file. (Applies only for Selenium standalone server.)
    • Select2 component for jQuery based Select2, which mimics behavior of native WebDriverSelect (it actually uses the same interface; though not all methods are implemented).
    • waitForTitleRegexp() syntax sugar method to wait until current page title matches given regular expression (shortcut for new WebDriverExpectedCondition::titleMatches() method).

    ๐Ÿ”„ Changed

    • ๐Ÿš€ Deprecate TestUtils. The class will be removed in next major release. This includes:
      • Deprecate default instantiation of TestUtils in TestCase - $this->utils property of TestCase.
      • Deprecate TestUtils::setSelect2Value() method. Use directly the new Select2 component and selectByVisiblePartialText() method.
      • Deprecate TestUtils::getFixturePath() method. Use Facebook\WebDriver\Remote\FileDetector instead.
      • Deprecate TestUtils::sleep() method. Use AbstractTestCase::sleep() method instead.
    • โฌ†๏ธ Upgrade php-webdriver to version 1.3.0.