Open End JavaScript testing and utility kit
Project description
jskit contains infrastructure and in particular a py.test plugin to enable running tests for JavaScript code inside browsers directly using py.test as the test driver. Running inside the browsers comes with some speed cost, on the other hand it means for example the code is tested against the real-world DOM implementations.
The approach also enables to write integration tests such that the JavaScript code is tested against server-side Python code mocked as necessary. Any server-side framework that can already be exposed through WSGI (or for which a subset of WSGI can be written to accommodate the jskit own needs) can play along.
jskit has also some support to run JavaScript tests from unittest.py based test suites.
jskit also contains code to help modularizing JavaScript code which can be used to describe and track dependencies dynamically during development and that can help resolving them statically when deploying/packaging.
Known supported browsers are Firefox, Internet Explorer >=7, and WebKit browsers.
jskit now supports both py.test 2.0 and late py.test 1.x.
jskit requires Python 2.6 or 2.7. It also uses MochiKit - of which it ships a version within itself for convenience - for its own working though in does not imposes its usage on tested code.
jskit was initially developed by Open End AB and is released under the MIT license.
Europython 2009 talk with examples
The project repository lives at http://bitbucket.org/pedronis/js-infrastructure/
Discussions and feedback should go to py-dev at codespeak.net
Changelog
0.9.0
make reusing one tab/window and the corresponding browser test object for all tests using the same setup in a session the default, this is enforced when using py.test 2.0 which collects all tests first
py.test 2.0 is now supported! py.test 1.x still works as well
display during the test runs a list of links on the upper right corner of the pages to jump to the outcome sections corresponding to the JavaScript test files or python modules
various internal cleanups and simplifications
some light refreshing and editing of the docs
fix the looking up of jstests_setup values to consider the chain of conftest.py correctly
MochiKit usage is really an implementation detail, switch to by default in tests importing it with __export__=false, which means the name MochiKit alone is defined in the global (window) namespace, use in a jstests_setup:
class jstests_setup: MochiKit__export__ = True
to get the old behavior.
0.8.9
optionally delegate to the serverSide how the baseurl from which tests will be served should look like, useful when doing proxying for functional testing abuse of oejskit
change packaging to just offer a source tar file, so that makes it easier to package
requires Python 2.6 or 2.7
0.8.8
improved code to check for the presence of browsers which is used to skip tests, this means that listing non-present browsers in browser specs should not provoke problems
workaround to bug in FF3.5 triggered by the global var leak detection code, no leak detection with FF3.5 :(
0.8.7
flexible user-defined-name=commandline control over browser names for browser.py server with documentation
document the glue to standard library unittest.py
better error reporting when a browser cannot be started
use json module included in Python >=2.6, simplejson otherwise
move the py.test plugin into the oejskit package, expose it through a pytest11 setuptools entry point
fix own-tests-only issues and warnings with py.test 1.1.x
0.8.6
fixes for py.test 1.0 final compatibility
experimental glue to standard library unittest.py (no docs yet)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file oejskit-0.9.0.tar.gz
.
File metadata
- Download URL: oejskit-0.9.0.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06d645e2506acd85b8a858b550907c5c8440d4f1315fc2c4e6b86b091c29846e |
|
MD5 | 7f14ef269c7ffb7e6286f9df8812a273 |
|
BLAKE2b-256 | 1610f9d24c1f5ff7a8236e48d3c8fbd12e76eb4741e6f4e76e5c25c51d7ed7a9 |