我正在帮助我的团队将他们的应用程序从 python 2 升级到 3,但在单元测试中遇到了错误。当我使用以下命令运行测试时:
python3 manage.py test groupapp --settings=settings.deploy_dev
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。但如果我运行:
python3 manage.py test groupapp.tests --settings=settings.deploy_dev
Run Code Online (Sandbox Code Playgroud)
错误不会发生。值得注意的是,即使我从测试文件夹中删除了所有测试,这些错误也会发生,并且据我所知,它们没有连接到实际的测试用例。
我不明白 python 3 中这两个调用之间的区别。在 python 2 中,如果我运行这两个调用,我会得到相同的结果(没有测试失败)。
groupapp_v2.groupapp.admin (unittest.loader._FailedTest) ... ERROR
groupapp_v2.groupapp.models (unittest.loader._FailedTest) ... ERROR
======================================================================
ERROR: groupapp_v2.groupapp.admin (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: groupapp_v2.groupapp.admin
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 462, in _find_test_path
package = self._get_module_from_name(name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
__import__(name)
File "/Users/matthew/bitbucket/consortium-website/groupapp_v2/groupapp/admin/__init__.py", line 73, in <module>
admin.site.register(Grid, GridAdmin)
File "/Users/matthew/virtualenv/groupapp-python3.6/lib/python3.6/site-packages/django/contrib/admin/sites.py", line 110, in register
raise …Run Code Online (Sandbox Code Playgroud)