Unit Test Integration

Holmium provides two utilities to ease integration with automated tests.

The TestCase base class.

This base class extends unittest.TestCase and adds the following functionality:

  • automatically provision a selenium webdriver driver to the testcase which is selected based on the environment variable HO_BROWSER.
  • A remote selenium server can also be used by setting the value of HO_REMOTE to the fully qualified url to the selenium server (e.g. http://localhost:4444/wd/hub)
  • clears the browser cookies between each test case
  • quits the driver at the end of the test class.

Example test case

import unittest
import holmium.core

class SimpleTest(holmium.core.TestCase):
    def setUp(self):
        self.driver.get("http://www.google.com")

    def test_title(self):
        self.assertEquals(self.driver.title, "Google")

if __name__ == "__main__":
    unittest.main()

Execution

# against the builtin firefox driver
export HO_BROWSER=firefox;python test_simple.py
# against a firefox instance under a remote selenium server
export HO_BROWSER=firefox;export HO_REMOTE=http://localhost:5555/wd/hub;python test_simple.py

HolmiumNose plugin for nosetest.

This plugin registers the following command line options to nose:

option description
--with-holmium to enable the use of the holmium plugin
--holmium-browser one of chrome,firefox,opera,ie,phantomjs,android,iphone or ipad
--holmium-remote the full qualified url of the selenium server. If not provided the browsers will be attempted to be launched using the built in webdrivers.
--holmium-useragent useragent to use as an override. only works with firefox & chrome
--holmium-capabilities a json dictionary of extra desired capabilities to pass to the webdriver.

Example test case

import unittest

class SimpleTest(unittest.TestCase):
    def setUp(self):
        self.driver.get("http://www.google.com")

    def test_title(self):
        self.assertEquals(self.driver.title, "Google")

Execution

# against the builtin firefox driver
nosetest test_simple.py --with-holmium --holmium-browser=firefox
# against a firefox instance under a remote selenium server
nosetest test_simple.py --with-holmium --holmium-browser=firefox --holmium-remote=http://localhost:5555/wd/hub