【问题标题】:python3 for unit test: AttributeError: module '__main__' has no attribute "kernel..."用于单元测试的python3:AttributeError:模块'__main__'没有属性“内核......”
【发布时间】:2018-04-21 04:22:14
【问题描述】:

我正在练习 python 的单元测试,它总是指向一个 JSON 文件:

单元测试代码

import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):

    def test_first_last_name(self):
        formatted_name=get_formatted_name("allen","park")
        self.assertEqual(formatted_name,"Allen Park")

unittest.main()

错误

/Users/xxx/Library/Jupyter/runtime/kernel-0eacd257-bf93-4c0f-843c-2e8a96377a17
(unittest.loader._FailedTest)

AttributeError: module '__main__' has no attribute
'/Users/xxx/Library/Jupyter/runtime/kernel-0eacd257-bf93-4c0f-843c-2e8a96377a17'

回溯是:

    SystemExit                                Traceback (most recent call last)
    <ipython-input-1-15fe4fc5728d> in <module>()
         20         self.assertIn(response,my_survey.responses)
         21 
    ---> 22 unittest.main()

    /anaconda3/lib/python3.6/unittest/main.py in __init__(self, module, defaultTest, argv, testRunner, testLoader, exit, verbosity, failfast, catchbreak, buffer, warnings, tb_locals)
         93         self.progName = os.path.basename(argv[0])
         94         self.parseArgs(argv)
    ---> 95         self.runTests()
         96 
         97     def usageExit(self, msg=None):

    /anaconda3/lib/python3.6/unittest/main.py in runTests(self)
        256         self.result = testRunner.run(self.test)
        257         if self.exit:
    --> 258             sys.exit(not self.result.wasSuccessful())
        259 
        260 main = TestProgram

    SystemExit: True

我该如何解决这个问题?

【问题讨论】:

    标签: python jupyter python-unittest


    【解决方案1】:

    看看“https://medium.com/@vladbezden/using-python-unittest-in-ipython-or-jupyter-732448724e31

    if __name__ == '__main__':
        unittest.main(argv=['first-arg-is-ignored'], exit=False)
    

    【讨论】:

    • 可惜不行,还是报同样的错误……
    【解决方案2】:

    使用以下:

    if __name__ == "__main__":
        unittest.main()
    

    它有效,但由于镜像错字而失败。我换了:

    self.asertEqual
    

    与:

    self.assertEqual
    

    【讨论】:

      猜你喜欢
      • 2019-09-14
      • 2022-11-19
      • 2017-12-19
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 2018-11-26
      • 2014-10-23
      • 2019-04-10
      相关资源
      最近更新 更多