Answers.Body: <p>Selenium testing can refer to a couple different situations:</p>
  
  <ul>
  <li>A. If you focus on <em>implementing custom sites for clients</em>, 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 <code>git</code>!). Use Windows (or not!).</li>
  <li>B. If you focus on <em>developing changes for <code>civicrm-core</code></em>, then you're looking at the <code>WebTest</code> suite which is used for canonical QA of official releases. This comes with more rules/constraints, e.g. you need to install Civi from <code>git</code>.</li>
  </ul>
  
  <p>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 <code>WebTest</code> suite in <code>civicrm-core</code>.</p>
  
  <p>The basic process of running the <code>WebTest</code> suite is the same on any platform:</p>
  
  <ol>
  <li>Install Apache/MySQL/PHP/Composer/Java/Git/NodeJS/Bower/Drupal.</li>
  <li>Install the desired version of Civi (from git).</li>
  <li><a href="http://wiki.civicrm.org/confluence/display/CRM/Setting+up+your+personal+testing+sandbox+HOWTO" rel="nofollow">Setup various config files for the test suite</a> -- most notably <code>civicrm.settings.local.php</code> and <code>CiviSeleniumSettings.php</code>.</li>
  </ol>
  
  <p>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).</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-25T07:09:27.417Z
Answers.LastActivityDate: 2015-07-25T07:09:27.417Z
Answers.UserDisplayName: Tim Otten
Body: <p>I know documentation suggests using a virtual machine w/Windows, but I don't know anything (yet) about Selenium /limitations so am asking</p>
  
Tags: <testing>
Title: Is it possible to use Windows & Cygwin to run Selenium tests or does Selenium require a VM?
ThreadText: # Is it possible to use Windows & Cygwin to run Selenium tests or does Selenium require a VM?
  
  (Asked by: username_0 on 2015-07-24)
  
  I know documentation suggests using a virtual machine w/Windows, but I don't know anything (yet) about Selenium /limitations so am asking
  
  **Tags:** testing
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2015-07-25. Score: 4
  
  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 `WebTest` suite which is used for canonical QA of official releases. This comes with more rules/constraints, e.g. you need to install Civi from `git`.
  
  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 `civicrm-core`.
  
  The basic process of running the `WebTest` suite is the same on any platform:
  
  1. Install Apache/MySQL/PHP/Composer/Java/Git/NodeJS/Bower/Drupal.
  2. Install the desired version of Civi (from git).
  3. [Setup various config files for the test suite](http://wiki.civicrm.org/confluence/display/CRM/Setting+up+your+personal+testing+sandbox+HOWTO) -- most notably `civicrm.settings.local.php` and `CiviSeleniumSettings.php`.
  
  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.
  
  
  ---
  
  