| Repository | browsertests * | selenium * | contact |
|--|
|mediawiki/extensions/CentralAuth| | + |
|mediawiki/extensions/CentralNotice| | + |
[email protected] |
|mediawiki/extensions/CirrusSearch| | + |
|mediawiki/core| | + |
|mediawiki/extensions/Echo| | + |
[email protected] [email protected] [email protected] |
|mediawiki/extensions/Flow| + | + |
[email protected] [email protected] [email protected] |
|mediawiki/extensions/Gather| | + |
|mediawiki/extensions/GettingStarted| | + |
[email protected] [email protected] [email protected] |
|mediawiki/extensions/Math| | + |
|mediawiki/extensions/MobileFrontend| + | + |
|mediawiki/extensions/MultimediaViewer| + | + |
[email protected] |
|mediawiki/extensions/PageTriage| | + |
[email protected] [email protected] [email protected] |
|mediawiki/extensions/PdfHandler| | + |
|mediawiki/extensions/QuickSurveys| | + |
|mediawiki/extensions/RelatedArticles| | + |
|mediawiki/extensions/VisualEditor| + | + |
[email protected] |
|mediawiki/extensions/WikiLove| | + |
[email protected] [email protected] [email protected] |
|wmde/WikidataBrowserTests| + | |
[email protected] [email protected] [email protected] [email protected] |
selenium* jobs are a new way of running Ruby based Selenium tests. The jobs are triggered daily.
Configuration evolved in being too complicated and not flexible enough. For example, see T128084. Ideally, job configuration would only need to specify Rake target (for example `beta-chrome`).
**Source repository (mediawiki/extensions/Math)**
```
tests/browsers/environment.yaml
```
* define an environment per target/browser (ex: test2_ie7_windows7 , beta_firefox, beta_chrome)
** because we only care about a thin subsets of possible combinations, not all possible ones
* come up with a way for developers to select which environments are run. Jenkins YAML plugin. Would let us do something like:
```
MEDIAWIKI_ENVIRONMENTS:
- test2_ie7_windows7
- beta_firefox
- beta_chrome
```
**Jenkins job: a generic one per repository (example: browsertests-Math)**
* selenium-{reponame}
** bundle install
** bundle exec rake selenium
Yaml Axis plugin populate MEDIAWIKI_ENVIRONMENT so we get a sub job per value there.
**culprit properly set cucumber --tags**
In the Rakefile of the source repository:
* require mediawiki_selenium
* ask for the mediawiki_url and the browser
* forge the --tags parameters and inject them in cucumber command
**cherry on the cake**
* write a rake task in mediawiki_selenium that has the logic to set cucumber --tags and params. So developers can just:
```
require 'mediawiki_selenium/rake_task'
MediawikiSelenium::RakeTask.new
```
If we want to change the logic, it will just be a version bump in each repositories.