I know documentation suggests using a virtual machine w/Windows, but I don't know anything (yet) about Selenium /limitations so am asking
Selenium testing can refer to a couple different situations:
- A. If you focus on implementing custom sites for clients, then you might create a custom Selenium test-suite which encompasses the configurations/customizations/addons. Basically everything in the tool-chain is at your discretion. Use Selenium (or something else!). Use Civi tarballs (or zipballs or
git!). Use Windows (or not!).
- B. If you focus on developing changes for
civicrm-core, then you're looking at the
WebTestsuite which is used for canonical QA of official releases. This comes with more rules/constraints, e.g. you need to install Civi from
In situation A, the testing methodology has little to do with Civi. Any tool or method for testing general webapps should work the same with Civi. So I'm assuming that you're interested in situation B -- the
WebTest suite in
The basic process of running the
WebTest suite is the same on any platform:
- Install Apache/MySQL/PHP/Composer/Java/Git/NodeJS/Bower/Drupal.
- Install the desired version of Civi (from git).
- Setup various config files for the test suite -- most notably
I've done #1 and #2 many ways on many platforms (OSX + Ubuntu + Debian + WinXP + Win7, in bare metal and VMs and containers), and I've done step #3 most places (albeit not Windows). Steps #1 and #2 on Windows are PITA -- mostly because they're not standardized (which makes them hard to document/automate/maintain).
Or to give it an upbeat spin: If you can get through step #1 and #2 to a produce a working git-based installation on Windows/Cygwin, then the Selenium bits in #3 will be easy by comparison.