I’m using Python’s built-in unittest module and I want to write a few tests that are not critical.
I mean, if my program passes such tests, that’s great! However, if it doesn’t pass, it’s not really a problem, the program will still work.
For example, my program is designed to work with a custom type “A”. If it fails to work with “A”, then it’s broken. However, for convenience, most of it should also work with another type “B”, but that’s not mandatory. If it fails to work with “B”, then it’s not broken (because it still works with “A”, which is its main purpose). Failing to work with “B” is not critical, I will just miss a “bonus feature” I could have.
Another (hypothetical) example is when writing an OCR. The algorithm should recognize most images from the tests, but it’s okay if some of them fails. (and no, I’m not writing an OCR)
Is there any way to write non-critical tests in unittest (or other testing framework)?
Python 2.7 (and 3.1) added support for skipping some test methods or test cases, as well as marking some tests as expected failure.
http://docs.python.org/library/unittest.html#skipping-tests-and-expected-failures
Tests marked as expected failure won’t be counted as failure on a TestResult.