无法在ipython / jupyter笔记本中运行unittest的主要功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法在ipython / jupyter笔记本中运行unittest的主要功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2737字,纯文字阅读大概需要4分钟。
内容图文
![无法在ipython / jupyter笔记本中运行unittest的主要功能](/upload/InfoBanner/zyjiaocheng/702/c1d80c1eeb674b9b99ecf32843238da8.jpg)
我给出了一个在ipython / jupyter笔记本中抛出错误的示例,但作为单个脚本运行正常.
import unittest
class Samples(unittest.TestCase):
def testToPow(self):
pow3 = 3**3
assert pow3==27
if __name__ == '__main__':
unittest.main()
错误如下:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-7-232db94ae8b2> in <module>()
8
9 if __name__ == '__main__':
---> 10 unittest.main()
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.pyc in __init__(self, module, defaultTest, argv, testRunner, testLoader, exit, verbosity, failfast, catchbreak, buffer)
92 self.testLoader = testLoader
93 self.progName = os.path.basename(argv[0])
---> 94 self.parseArgs(argv)
95 self.runTests()
96
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.pyc in parseArgs(self, argv)
147 else:
148 self.testNames = (self.defaultTest,)
--> 149 self.createTests()
150 except getopt.error, msg:
151 self.usageExit(msg)
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.pyc in createTests(self)
156 else:
157 self.test = self.testLoader.loadTestsFromNames(self.testNames,
--> 158 self.module)
159
160 def _do_discovery(self, argv, Loader=None):
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.pyc in loadTestsFromNames(self, names, module)
128 of string specifiers. See 'loadTestsFromName()'.
129 """
--> 130 suites = [self.loadTestsFromName(name, module) for name in names]
131 return self.suiteClass(suites)
132
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.pyc in loadTestsFromName(self, name, module)
98 obj = module
99 for part in parts:
--> 100 parent, obj = obj, getattr(obj, part)
101
102 if isinstance(obj, types.ModuleType):
AttributeError: 'module' object has no attribute '/Users/root3d/Library/Jupyter/runtime/kernel-c5225ac4-4b0e-4473-ae0a-3e051a704561'
可能出现什么问题?那么我应该怎么在笔记本上写测试呢?
解决方法:
unittest.main默认查看sys.argv,这是启动IPython的内容,因此内核连接文件的错误不是有效属性.您可以将显式列表传递给main,以避免查找sys.argv.
在笔记本中,您还需要包含exit = False以防止unittest.main尝试关闭内核进程:
unittest.main(argv=['first-arg-is-ignored'], exit=False)
您可以在argv列表中传递更多参数,例如
unittest.main(argv=['ignored', '-v'], exit=False)
内容总结
以上是互联网集市为您收集整理的无法在ipython / jupyter笔记本中运行unittest的主要功能全部内容,希望文章能够帮你解决无法在ipython / jupyter笔记本中运行unittest的主要功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。