On 12/31/13 12:49 PM, Roy Smith wrote:
Environment:
Python 2.7.3
nose 1.3.0
Ubuntu 12.04 Linux
I'm befuddled about how test skipping, and in particular, --no-skip,
is supposed to work in nose. I've got a trivial test file:
from nose import SkipTest
def test_skip():
raise SkipTest
assert 0
If I run this, it skips the test, as expected:
$ nosetests try.py
S
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK (SKIP=1)
What's confusing is, if I use --no-skip, it STILL skips the test:
$ nosetests --no-skip try.py
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
The only difference is it doesn't print the "S". Am I just
mis-understanding what --no-skip is supposed to do?
I don't understand why, but my tests confirm what you found: if a test
raises SkipTest, then it is marked as an S, and included in the count of
tests run. If you run with --no-skip, then the result of the test isn't
displayed in the dots at all, but the test is still included in the
total count:
$ nosetests
F.S
======================================================================
FAIL: test_fail (test_foo.Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/ned/lab/test_foo.py", line 8, in test_fail
assert 0
AssertionError
----------------------------------------------------------------------
Ran 3 tests in 0.004s
FAILED (SKIP=1, failures=1)
$ nosetests --no-skip
F.
======================================================================
FAIL: test_fail (test_foo.Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/ned/lab/test_foo.py", line 8, in test_fail
assert 0
AssertionError
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
--
Ned Batchelder, http://nedbatchelder.com
--
https://mail.python.org/mailman/listinfo/python-list