I am giving an example which throws an error in ipython/jupyter notebook, but runs fine as an individual script.
import unittest
class Samples(unittest.TestCase
unittest.main
looks at sys.argv
by default, which is what started IPython, hence the error about the kernel connection file not being a valid attribute. You can pass an explicit list to main
to avoid looking up sys.argv.
In the notebook, you will also want to include exit=False
to prevent unittest.main from trying to shutdown the kernel process:
unittest.main(argv=['first-arg-is-ignored'], exit=False)
You can pass further arguments in the argv list, e.g.
unittest.main(argv=['ignored', '-v'], exit=False)