Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pytest: Deselecting tests

Tags:

python

pytest

With pytest, one can mark tests using a decorator

@pytest.mark.slow def some_slow_test():     pass 

Then, from the command line, one can tell pytest to skip the tests marked "slow"

pytest -k-slow 

If I have an additional tag:

@pytest.mark.long def some_long_test()     pass 

I would like to be able to skip both long AND slow tests. I've tried this:

pytest -k-slow -k-long 

and this:

pytest -k-slow,long 

And neither seems to work.

At the command line, how do I tell pytest to skip both the slow AND the long tests?

like image 975
JS. Avatar asked Sep 13 '11 00:09

JS.


Video Answer


1 Answers

Additionally, with the recent addition of the "-m" command line option you should be able to write:

py.test -m "not (slow or long)" 

IOW, the "-m" option accepts an expression which can make use of markers as boolean values (if a marker does not exist on a test function it's value is False, if it exists, it is True).

like image 137
hpk42 Avatar answered Sep 27 '22 20:09

hpk42