要解决在Jupiter Notebook上的练习,我需要对名为 city_function
的函数进行单元测试def city_function(city, country):
output = city.title() + ', ' + country.title()
return output
此功能存储在“ city_functions.py”中。执行单元测试的代码存储在“ test_cities2.ipynb”中。我尝试了以下代码进行单元测试:
import unittest
from city_functions import city_function
class CityCountryTestCase(unittest.TestCase):
# Verify if city_function works
def test_city_country_function(self):
output = city_function('lisbon', 'portugal')
self.assertEqual(output, 'Lisbon, Portugal')
unittest.main()
我得到了类型为AttributeError的AttributeError:模块' main '没有属性。 我该怎么办才能解决这个问题?
答案 0 :(得分:1)
有一个不错的article,它描述了您的问题:
原因是unittest.main查看
sys.argv
,第一个参数是启动IPython或Jupyter的参数,因此有关内核连接文件的错误不是有效属性。将显式列表传递给unittest.main
会阻止IPython和Jupyter查看sys.argv
。传递exit=False
将阻止unittest.main
关闭kernell进程
您的最后一行应该是这样的:
unittest.main(argv=['first-arg-is-ignored'], exit=False)