This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!
Project Description

Please see https://dev.launchpad.net/LazrStyleGuide and https://dev.launchpad.net/Hacking for how to develop in this package.

Javascript tests with JsTestDriver

lazr.testing includes support for running Javascript tests with the help of JsTestDriver, and failures and errors are reported back to your unittest-based test runner as if they were failures and errors of a unittest TestCase.

To actually run the tests, a browser must be started (if not running) and captured by the JsTestDriver server. Since we generally want to do this only once, the JsTestDriver server is started and stopped as a subprocess using zope.testing support for layers.

JsTestDriver supports outputing test results in an XML-based format, which we parse and feed into a TestResult instance from unittest.

Writing tests

Please refer to the JsTestDriver TestCase documentation on how to write tests that are supported by JsTestDriver.

Additionally, the lazr-js project has some examples of running YUI Test-based tests under JsTestDriver.

Getting your Javascript tests to be run as part of your test suite is somewhat trivial, provided that you are already using zope.testing as your test runner (see also Future Plans). All you have to do is to define a JsTestDriverTestCase subclass with a config_filename attribute that points to a JsTestDriver configuration file. For example:

from lazr.testing.jstestdriver import JsTestDriverTestCase

class JsTestDriverSelfTest(JsTestDriverTestCase):
    config_filename = os.path.abspath(os.path.join(os.path.dirname(__file__),
                                                   "js", "tests.conf"))

Running tests

In order to actually run the tests you need to specify the location where JsTestDriver can be found. This can be done by exporting an environment variable:

JSTESTDRIVER="java -jar /path/to/JsTestDriver.jar" ./bin/test

By default, as said above, the test layer will fire up a JsTestDriver server and connect your default browser to it. Then the actual test run will execute the JsTestDriver as a client connecting back to that server to drive the Javascript tests. This variable must always be present, regardless of the other variables described below.

You can control the port used by the server with another environment variable. The default is to start the server on port 4224:

JSTESTDRIVER_PORT="10001"

It is also possible (and very handy!) to have a long-running JsTestDriver server and connect one or more browser to it manually. If you want to do that, you have to export another variable telling where your JsTestDriver server is running (hint: this could even be a remote server):

JSTESTDRIVER_SERVER="http://localhost:10001"

Controlling the browser that will be started can also be done by setting the BROWSER environment variable to the full path of your browser’s executable.

If your default browser is Firefox, it can be annoying that every time you run the tests in the background a new tab opens and Firefox switches to it automatically, disrupting your browsing. You can disable that by Preferences -> Tabs and disabling the option named “When I open a link in a new tab, switch to it immediately”. It might be also interesting to enable the option “Open new windows in a new tab instead” if it’s not enabled yet.

Finally, if you’re just too annoyed that every test run opens new tabs, you have the option of having a long-running JsTestDriver server as described above and manually connect to it. That way, only a single tab of your browser will be used and every test run will re-use that tab.

Future Plans

In the future, the test layer might be replaced by testresources and the custom XML parsing might be replaced by using a subunit stream filter.

NEWS for lazr.testing

0.1.2 (2010-09-06)

  • Add compatibility with JsTestDriver 1.2.2. Not compatible with earlier versions of JsTestDriver anymore.
  • Don’t wait for a browser, if JsTestDriverLayer doesn’t start the browser. (LP: #627413)

0.1.1 (2009-10-16)

  • Brown bag, botched NEWS release.

0.1.0 (2009-10-16)

  • Initial release
Release History

Release History

0.1.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
lazr.testing-0.1.2.tar.gz (23.9 kB) Copy SHA256 Checksum SHA256 Source Sep 6, 2010

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting