<div dir="ltr">Hey all,<div><br></div><div>I'm proud to announce that after months of pouring through existing browser-test repos, studying current test patterns, pairing, experimentation and development (rinsed, smell tested, repeated), it's finally time for a new major (pre)release of MW-Selenium, '1.0.0.pre.1'. Huge thanks to Chris M., Antoine, and Željko for their feedback on the overall framework redesign, and for reviewing ~30 patches and ~90 tests along the way. I'm also excited to start pairing with you feature developers our there to see how it can make your browser-testing lives more enjoyable.</div><div><br></div><div>Many important improvements and refactorings constitute this major release, the most significant of which is an "environment abstraction layer" that, above all else, aims to make browser tests more deterministic and easier to implement. The release notes, which I'll paste below, describe these design objectives in more detail, or you can hop over to the <a href="http://mw.org">mw.org</a> design article if you're feeling extra... read-y (sorry, but it's Friday).[1]</div><div><br></div><div><div><div>### 1.0.0 2015-01-16</div><div>* Substantial refactoring and backwards incompatible changes</div><div>* Implemented an "environment abstraction layer" with the aim to:</div><div>  * Improve test determinism by sourcing environment-specific default</div><div>    configurations and enforcing an immutable runtime configuration</div><div>  * Simplify test patterns by providing DSL constructs around commonly tested</div><div>    MediaWiki resources (e.g. `as_user(:a) { ... }`, `on_wiki(:b) { ... }`,</div><div>    etc.)</div><div>  * Manage multiple isolated browser sessions within a single test scenario</div><div>  * Serve more advanced use cases by supporting ad hoc browser customization</div><div>* Cleaned up the global object space by moving methods into the new</div><div>  `Environment` and `BrowserFactory` classes</div><div>* Further decoupled core framework from Cucumber, allowing for the possibility</div><div>  of its use under other Ruby test frameworks like RSpec</div><div>* Established test suite with coverage for all newly implemented EAL modules</div><div>  and classes</div><div>* Improved high level and inline documentation with examples and links to</div><div>  upstream resources</div></div></div><div><br></div><div>In addition to implementation improvements, a lot of effort was put into improving the README and inline documentation.[2] The changes for this new release are not yet reflected in the various <a href="http://mw.org">mw.org</a> articles on browser-test implementation, but will be edited in the coming weeks as a stable release is vetted.[3][4]</div><div><br></div><div>[1] <a href="https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Environment_abstraction_layer">https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Environment_abstraction_layer</a></div><div>[2] <a href="https://doc.wikimedia.org/rubygems/mediawiki-selenium/">https://doc.wikimedia.org/rubygems/mediawiki-selenium/</a></div><div>[3] <a href="https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Writing_tests">https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Writing_tests</a></div><div>[4] <a href="https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Running_tests">https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Running_tests</a></div><div><div><br></div><div>Cheers!</div><div>Dan</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Dan Duvall<div>Automation Engineer</div><div><a href="http://wikimediafoundation.org" target="_blank">Wikimedia Foundation</a><br></div></div></div>
</div></div>