MediaWiki is a free and open-source Wiki application. It powers a lot of websites including Wikipedia, Wiktionary, and Wikimedia commons.
Delivery of optimal quality software with unique and innovative features is always a priority. However, without evaluating software components under various expected and unexpected conditions, one cannot guarantee these aspects. Therefore, testing is performed to test every software component large and small. To increase the efficiency of the testing process and to maximize test coverage, automation is imperative. Automation not only improves the quality of testing but also makes it faster and reduces the cost involved.
MediaWiki uses [[ https://webdriver.io | WebdriverIO ]], an open-source test automation framework, as it’s primary testing framework. As a part of Google Summer of Code 2020 internship, WebdriverIO was migrated to v6 for all most all repositories. While migration was being carried out, we noticed a need to perform a cleanup and refactoring of the existing WebdriverIO code across all repositories. Some tasks that need to be performed include:
1. Introduce video recording in all selenium tests. See T253113
2. Sanitize Page Object imports across all repositories
3. Work on extending the `wdio.conf.js` file so that the same file can be used/extended across all repositories
4. Create a standalone NPM package that can be used to record videos of the tests independently
1. An exhausted list of clean up tasks required to be performed can be found [[ https://phabricator.wikimedia.org/T210726 | here ]]
2. For a list of all repos running Selenium, see https://www.mediawiki.org/wiki/Selenium/Reference/Example_Code
@Vidhi-Mody @zeljkofilipin @Soham
- [[ https://webdriver.io/docs/gettingstarted.html | WebdriverIO ]] (Selenium)
1. [[ https://www.mediawiki.org/wiki/Gerrit/Tutorial | Set up gerrit for Mediawiki ]]
2. [[ https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/core | Clone mediawiki/core ]]
3. Make a trivial change to `tests/selenium/README.md` in mediawiki/core
4. Run selenium tests locally. See P8206 and https://www.mediawiki.org/wiki/Selenium/Getting_Started