~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/testing.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-10-11 23:21:22 UTC
  • mfrom: (5462.3.21 597791-http-tests)
  • Revision ID: pqm@pqm.ubuntu.com-20101011232122-g2ejz5grpjes5brf
(mbp) cleanup test_http to use scenarios;
 add load_tests_from_scenarios (Martin Pool)

Show diffs side-by-side

added added

removed removed

Lines of Context:
811
811
whether a test should be added for that particular implementation,
812
812
or for all implementations of the interface.
813
813
 
814
 
The multiplication of tests for different implementations is normally
815
 
accomplished by overriding the ``load_tests`` function used to load tests
816
 
from a module.  This function typically loads all the tests, then applies
817
 
a TestProviderAdapter to them, which generates a longer suite containing
818
 
all the test variations.
819
 
 
820
814
See also `Per-implementation tests`_ (above).
821
815
 
822
816
 
823
 
Test scenarios
824
 
--------------
 
817
Test scenarios and variations
 
818
-----------------------------
825
819
 
826
820
Some utilities are provided for generating variations of tests.  This can
827
821
be used for per-implementation tests, or other cases where the same test
832
826
values to which the test should be applied.  The test suite should then
833
827
also provide a list of scenarios in which to run the tests.
834
828
 
835
 
Typically ``multiply_tests_from_modules`` should be called from the test
836
 
module's ``load_tests`` function.
 
829
A single *scenario* is defined by a `(name, parameter_dict)` tuple.  The
 
830
short string name is combined with the name of the test method to form the
 
831
test instance name.  The parameter dict is merged into the instance's
 
832
attributes.
 
833
 
 
834
For example::
 
835
 
 
836
    load_tests = load_tests_apply_scenarios
 
837
 
 
838
    class TestCheckout(TestCase):
 
839
 
 
840
    variations = multiply_scenarios(
 
841
        VaryByRepositoryFormat(), 
 
842
        VaryByTreeFormat(),
 
843
        )
 
844
 
 
845
The `load_tests` declaration or definition should be near the top of the
 
846
file so its effect can be seen.
837
847
 
838
848
 
839
849
Test support