Rev 2476: Description of how to use TestSkipped, test features, etc in http://sourcefrog.net/bzr/doc

Martin Pool mbp at sourcefrog.net
Wed May 2 12:33:18 BST 2007


At http://sourcefrog.net/bzr/doc

------------------------------------------------------------
revno: 2476
revision-id: mbp at sourcefrog.net-20070502113316-dshmmkjwwzjsyuq8
parent: pqm at pqm.ubuntu.com-20070501182714-71xp33bziogu3qu0
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: doc
timestamp: Wed 2007-05-02 21:33:16 +1000
message:
  Description of how to use TestSkipped, test features, etc
modified:
  HACKING                        HACKING-20050805200004-2a5dc975d870f78c
=== modified file 'HACKING'
--- a/HACKING	2007-04-24 14:19:24 +0000
+++ b/HACKING	2007-05-02 11:33:16 +0000
@@ -434,6 +434,50 @@
   __ http://docs.python.org/lib/module-doctest.html
 
 
+
+Skipping tests and test requirements
+------------------------------------
+
+In our enhancements to unittest we allow for some addition results beyond
+just success or failure.
+
+If a test can't be run, it can say that it's skipped.  This is typically
+used in parameterized tests - for example if a transport doesn't support
+setting permissions, we'll skip the tests that relating to that.  Skipped
+tests are appropriate when there's just no possibility that the test will
+ever run in this situation, and nothing either developers or users can do
+about it.  ::
+
+    try:
+        return self.branch_format.initialize(repo.bzrdir)
+    except errors.UninitializableFormat:
+        raise tests.TestSkipped('Uninitializable branch format')
+
+A subtly different case is a test that should run, but can't run in the
+current environment.  This covers tests that can only run in particular
+operating systems or locales, or that depend on external libraries.  Here
+we want to inform the user that they didn't get full test coverage, but
+they possibly could if they installed more libraries.  These are expressed
+as a dependency on a feature so we can summarise them, and so that the
+test for the feature is done only once.  (For historical reasons, as of
+May 2007 many cases that should depend on features currently raise
+TestSkipped.)  The typical use is::
+
+    class TestStrace(TestCaseWithTransport):
+
+        _test_needs_features = [StraceFeature]
+
+which means all tests in this class need the feature.  The feature itself
+should provide a ``_probe`` method which is called once to determine if
+it's available.
+
+Known failures are when a test exists but we know it currently doesn't
+work, allowing the test suite to still pass.  These should be used with
+care, we don't want a proliferation of quietly broken tests.  It might be
+appropriate to use them if you've committed a test for a bug but not the
+fix for it, or if something works on Unix but not on Windows.
+
+
 Running tests
 =============
 Currently, bzr selftest is used to invoke tests.




More information about the bazaar-commits mailing list