Rather than running my nose tests from the command line, I'm using a test runner that sets up a few things for all the tests, including a connection to a local test instance of MongoDB. The documentation for nose only seems to indicate how to pass options through the command line or a configuration file located in your home directory. Is there a way to pass options, such as --with-xunit when using a script to run your tests?
Like this:
import nose
argv = ['fake', '--with-xunit']
nose.main(argv=argv)
The "fake" argument must be added to stand in for the executable name, as described in dbw's answer.
Nose does something sneaky with the first argument, so it is not parsed. My nose wrapper does something like this:
import nose
import sys
argv = sys.argv[:]
argv.insert(1, "--with-xunit")
nose.main(argv=argv)
As a bonus, this allows the clients of your program to use Nose arguments to control its behavior!
来源:https://stackoverflow.com/questions/7070501/passing-options-to-nose-in-a-python-test-script