python - 在 iPy Notebook 中运行 unittest 示例时出现 AttributeError

标签 python jupyter-notebook

我是 iPython 的新手,正在尝试帮助其他开发人员入门,但我们都遇到了同样的问题。

我们正在尝试在 iPython 中运行来自 https://docs.python.org/2/library/unittest.html#basic-example 的 python unittest 示例 代码在 windows 和 ubuntu 上的命令行运行得很好,没有任何修改 来自 iPy notebook 的完全相同的代码生成以下异常:

AttributeError: 'module' object has no attribute '/home/myuser/'

文件名为:/home/myuser/example_unittest.ipynb

到目前为止,我已经仔细阅读了 iPython 文档和谷歌,但运气不佳。感谢任何调试提示或解决此问题的线索。

(全栈):

AttributeError                            Traceback (most recent call last)
<ipython-input-2-39bc0ec16f11> in <module>()
     28 
     29 if __name__ == '__main__':
---> 30     unittest.main()
     31 

/usr/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/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/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=loader.TestLoader):

/usr/lib/python2.7/unittest/loader.pyc in loadTestsFromNames(self, names, module)
    126         of string specifiers. See 'loadTestsFromName()'.
    127         """
--> 128         suites = [self.loadTestsFromName(name, module) for name in names]
    129         return self.suiteClass(suites)
    130 

/usr/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 '/home/myuser/'

最佳答案

unittest.main() 主要用于命令行执行。

为了在 ipython notebook 中运行单元测试,删除 if __name__ == '__main__' 部分代码,并在新单元格中创建测试套件,然后使用文本测试运行器,

suite = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
unittest.TextTestRunner().run(suite)

关于python - 在 iPy Notebook 中运行 unittest 示例时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004917/

相关文章:

r - 带有示例代码的 Jupyter R Plotly 404 错误

python - "ValueError: Dimensions of labels and X must be compatible",使用 Jupyter Notebook

python - 在 headless 健身房 jupyter Python 2.7 中获取 "AttributeError: ' ImageData' 对象没有属性 'data'"

python - 如何找到数据框列内数组中的最大值?

python - 如何在 Python 中缩短此 if 和 elif 代码

Python、Sklearn : How to reverse train_test_split of Sklearn?

python - 使机器人对最后一条消息使用react或对带有消息 ID 的消息作出 react

python - 如何加载之前使用笔记本保存的自定义类的 joblib 文件?

C# 调用 Jupyter Notebook

python - 处理文件的正确方法?