how to run selenium tests inside the automation-tests directory in the 123done or myfavoritebeers.org repos
Node bindings don't exist for Selenium 2 API (webdriver), so we're using python bindings instead. This requires some python-centric setup, but it shouldn't take more than 15 minutes or so to get up and running.
You should have python 2.7 on your system (check python --version).
We have to install a bunch of python libraries. pip fetches packages; virtualenv sandboxes them. If pip and virtualenv aren't on your system already, you'll need to do this once (once per computer, not once per repo):
# only do this if pip and virtualenv aren't on your computer already
easy_install pip
pip install virtualenv (might need to use sudo)
At the top-level of your repo, create a sandboxed python environment to install python dependencies (only need to do this once per clone):
# only do this once per clone
virtualenv test_env
Be sure you do not accidentally add the virtualenv directory (here, test_env) to git.
You can activate the sandbox, meaning link installed programs, via:
. test_env/bin/activate
And when you want to stop using the sandbox, you can exit via deactivate. Deactivating the virtualenv doesn't destroy it.
So, activate the virtualenv, and install the python requirements in requirements.txt:
pip install -Ur automation-tests/requirements.txt
Sweet. You're almost ready to go.
Before you can run tests on dev or stage or prod, you need to create a dummy persona account, and then put the test account info into automation-tests/credentials.yaml.
Yay wut! You're good to go. Here's an example incantation. If you run this from top-level in the repo, and you're on a mac that has firefox, you'll see the browser pop open and run all the tests:
py.test --pdb --destructive --driver=firefox \
--baseurl=http://dev.123done.org --browsername=firefox --platform=mac \
--credentials=automation-tests/credentials.yaml -q automation-tests
The most important thing to note is that the code under automation-tests/browserid is a git subtree pulled from github.com/6a68/bidpom.git. Changes made within that directory should be merged to the upstream repo; see git-subtree help file for details.
Note that the baseurl in the example snippet is specific to the 123done repo; you should change it if you're running automated tests for myfavoritebeers.org.