In order to reuse the Selenium helper outside a Django environment (for functional testing), add a new module containing the base class SeleniumTestCaseBase, which only inherits unittest.TestCase Add a class SeleniumTestCase with multiple inheritance of StaticLiveServerTestCase and SeleniumTestCaseBase to prevent existing tests from breaking. (Bitbake rev: 1177b3f368d8b7f8557eb649adb2e327b6df801c) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Running Toaster's browser-based test suite
These tests require Selenium to be installed in your Python environment.
The simplest way to install this is via pip:
pip install selenium==2.53.2
Note that if you use other versions of Selenium, some of the tests (such as tests.browser.test_js_unit_tests.TestJsUnitTests) may fail, as these rely on a Selenium test report with a version-specific format.
To run tests against Chrome:
- Download chromedriver for your host OS from https://code.google.com/p/chromedriver/downloads/list
- On *nix systems, put chromedriver on PATH
- On Windows, put chromedriver.exe in the same directory as chrome.exe
To run tests against PhantomJS (headless):
- Download and install PhantomJS: http://phantomjs.org/download.html
- On *nix systems, put phantomjs on PATH
- Not tested on Windows
Firefox should work without requiring additional software to be installed.
The test case will instantiate a Selenium driver set by the TOASTER_TESTS_BROWSER environment variable, or Chrome if this is not specified.
Available drivers:
- chrome (default)
- firefox
- ie
- phantomjs
e.g. to run the test suite with phantomjs where you have phantomjs installed in /home/me/apps/phantomjs:
PATH=/home/me/apps/phantomjs/bin:$PATH TOASTER_TESTS_BROWSER=phantomjs manage.py test tests.browser