64 lines
1.7 KiB
Plaintext
64 lines
1.7 KiB
Plaintext
Test frameworks provide a mechanism to skip tests if their prerequisites are not met, by either calling dedicated methods (e.g: ``++unittest.TestCase.skipTest++``, ``++pytest.skip++``, ...) or using decorators (e.g: ``++unittest.skip++``, ``++pytest.mark.skip++``, ...)
|
|
|
|
|
|
Using a ``++return++`` statement instead will make the test succeed, even though no assertion has been performed. It is therefore better to flag the test as ``++skipped++`` in such situation.
|
|
|
|
|
|
This rule raises an issue when a ``++return++`` is performed conditionally at the beginning of a test method.
|
|
|
|
|
|
No issue will be raised if the ``++return++`` is unconditional as S1763 already raises an issue in such case.
|
|
|
|
|
|
The supported frameworks are ``++Pytest++`` and ``++Unittest++``.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
import unittest
|
|
class MyTest(unittest.TestCase):
|
|
|
|
def test_something(self):
|
|
if not external_resource_available():
|
|
return # Noncompliant
|
|
self.assertEqual(foo(), 42)
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
import unittest
|
|
class MyTest(unittest.TestCase):
|
|
|
|
def test_something(self):
|
|
if not external_resource_available():
|
|
self.skipTest("prerequisite not met")
|
|
self.assertEqual(foo(), 42)
|
|
----
|
|
|
|
|
|
== See
|
|
|
|
* https://docs.pytest.org/en/latest/how-to/skipping.html[Pytest: skipping test functions]
|
|
* https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures[Unittest: skipping tests and expected failures]
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
include::highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|