Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to I display why some tests where skipped while using py.test?

I am using skipIf() from unittest for skipping tests in certain conditions.

@unittest.skipIf(condition), "this is why I skipped them!") 

How do I tell py.test to display skipping conditions?

I know that for unittest I need to enable the verbose mode (-v) but the same parameter added to py.test increase the verbosity by still does not display the skip reasons.

like image 283
sorin Avatar asked Nov 21 '12 14:11

sorin


People also ask

Why test cases are skipped?

The most common reason for the test cases getting skipped with Selenium using TestNG is if your methods are dependent on other method and a method you depend on is failed.

What marker can be used to skip a test case?

You can use the xfail marker to indicate that you expect a test to fail: @pytest.

What is the pytest syntax to skip a test?

The simplest way to skip a test is to mark it with the skip decorator which may be passed an optional reason . It is also possible to skip imperatively during test execution or setup by calling the pytest. skip(reason) function. This is useful when it is not possible to evaluate the skip condition during import time.


2 Answers

When you run py.test, you can pass -rsx to report skipped tests.

From py.test --help:

-r chars            show extra test summary info as specified by chars                     (f)ailed, (E)error, (s)skipped, (x)failed, (X)passed. 

Also see this part of the documentation about skipping: http://doc.pytest.org/en/latest/skipping.html

like image 187
todd Avatar answered Sep 21 '22 01:09

todd


Short answer:

pytest -rs 

This will show extra information of skipped tests.

Detailed answer:

To complement @ToddWilson's answer, the following chars have been added: p and P (2.9.0), a (4.1.0) and A (4.5.0). The detailed information about skipped and xfailed tests is not shown by default in order to avoid cluttering the output. You can use the -r flag among with the following chars:

  • (f)ailed
  • (E)rror
  • (s)kipped
  • (x)failed
  • (X)passed
  • (p)assed
  • (P)assed with output
  • (a)ll except passed (p/P)
  • (A)ll.

Warnings are enabled by default, and the default value is fE.

like image 40
lmiguelvargasf Avatar answered Sep 22 '22 01:09

lmiguelvargasf