gpt4 book ai didi

python - 在 PyCharm 中调用 unittest.main() - AtrributeError : module '__main__' has no atrribute

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:38 25 4
gpt4 key购买 nike

我认为这更像是一个 PyCharm 问题,而不是单元测试问题,但我正在从一本书中学习测试,而这个示例让我失败了。我正在运行 PyCharm 2016.3.2 和 Python 3.6

import unittest
from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):
"""Tests for 'name_function.py'."""

def test_first_last_name(self):
"""Do names like 'Janis Joplin' work?"""
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')

# In book, it's just the unittest.main() , which does not work...
# So in PyCharm __name__ doesn't equal __main__ ... not sure why
# if __name__ == '__main__':
unittest.main()

这是 name_function.py:

def get_formatted_name(first, last):
"""Generate a neatly formatted full name."""
full_name = first + " " + last
return full_name.title()

如果我按照编写的方式运行它,则会收到以下错误:

EE
======================================================================
ERROR: test_name_function (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'test_name_function'

======================================================================
ERROR: true (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'true'

----------------------------------------------------------------------
Ran 2 tests in 0.000s

如果我让“if”语句运行(或者只是删除对unittest.main()的调用),那么它就会正常工作,根本没有main()调用。

这一切都在 test_name_function.py 中。因此,在运行这个文件(并导入 name_function.py)时,PyCharm 似乎并不认为这个文件是 __main__ ? PyCharm 是否在幕后做了其他事情?

我是 Python 和 PyCharm 的新手,正在尝试了解其结构和环境。非常感谢大家。

最佳答案

你可以用这个方法来算出来。

 suite = unittest.defaultTestLoader.loadTestsFromTestCase(NamesTestCase)
unittest.TextTestRunner().run(suite)

关于python - 在 PyCharm 中调用 unittest.main() - AtrributeError : module '__main__' has no atrribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42791270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com