It's mentioned in the documentation (http://nose.readthedocs.org/en/latest/api/core.html) but there don't seem to be any examples, and trying it seems to run all tests in the cwd.
Asked
Active
Viewed 5,986 times
3 Answers
8
Try this:
test_module.py:
import logging
import sys
import nose
logging.basicConfig(level=logging.INFO)
#here are some tests in this module
def test_me():
pass
if __name__ == '__main__':
#This code will run the test in this file.'
module_name = sys.modules[__name__].__file__
logging.debug("running nose for package: %s", module_name)
result = nose.run(argv=[sys.argv[0],
module_name,
'-v'])
logging.info("all tests ok: %s", result)
python test_module.py
will get you:
test_module.test_me ... ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
INFO:root:all tests ok: True

Oleksiy
- 6,337
- 5
- 41
- 58
8
Here's a minimal version of a main for nose:
if __name__ == '__main__':
import nose
nose.run(defaultTest=__name__)
And a version for nose2:
if __name__ == '__main__':
import nose2
nose2.main()

paulmelnikow
- 16,895
- 8
- 63
- 114
0
nose has runmodule
function. So following works.
if __name__ == '__main__':
import nose
nose.runmodule()

Shiplu Mokaddim
- 56,364
- 17
- 141
- 187