A test runner which can output an XML report compatible with JUnit and Hudson/Jenkins as well as XML and HTML reports compatible with the CoreJet BDD standard
Project description
Introduction
This package provides an extension to the test runner to the one that ships with zope.testrunner, as well as a buildout recipe based on zc.recipe.testrunner to install a test script for this test runner.
It is based on (and can be used as a wholesale replacement for), collective.xmltestreport.
The test runner is identical to the one in zope.testrunner, except:
it is capable of writing test reports in the XML format output by JUnit/Ant. This allows the test results to be analysed by tools such as the Hudson/Jenkins continuous integration server.
it can output reports in the CoreJet XML format - see corejet.core
Usage
In your buildout, add a part like this:
[buildout] parts = ... test ... [test] recipe = corejet.testrunner eggs = my.package defaults = ['--auto-color', '--auto-progress']
The recipe accepts the same options as zc.recipe.testrunner, so look at its documentation for details.
When buildout is run, you should have a script in bin/test and a directory parts/test.
To run the tests, use the bin/test script. If you pass the --xml option, test reports will be written to parts/test/testreports directory:
$ bin/test --xml -s my.package
If you are using Hudson, you can now configure the build to publish JUnit test reports for <buildoutdir>/parts/test/testreports/*.xml.
To output a CoreJet report, do:
$ bin/test --corejet="file,path/to/corejet/file.xml" -s my.package
The CoreJet report and output XML file will be placed in parts/test/corejet. You can combine --xml and --corejet.
The example above uses the file CoreJet repository source, which expects to find a CoreJet XML file at the path specified after the comma.
Repository sources
Other repository sources can be registered via entry points: Packages must register an entry point under corejet.repositorysource identifying a callable that is passed the string after the comma with a unique name and which should return a corejet.core.model.RequirementsCatalogue object.
Hence, the file source is defined as:
def fileSource(path): catalogue = RequirementsCatalogue() with open(path) as stream: catalogue.populate(stream) return catalogue
and registered with:
[corejet.repositorysource] file = corejet.testrunner.filesource:fileSource
Use bin/test --help for a full list of options.
Changelog
1.0a1
First release [optilude]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.