我正在使用Coverage测量我的测试代码,但是我遇到了一个奇怪的问题。我根据Django Documentation尝试了命令:
coverage run --source='.' manage.py test myapp
但是我得到了这个错误:
Coverage.py警告:未收集任何数据。 (未收集数据) 无法将'manage.py'作为Python代码运行:SyntaxError:无效的语法 (manage.py,第16行)
使用python manage.py test myapp
可以正常工作。
这是我的manage.py(我没有进行任何修改)。
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mytestsite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
我到底想念什么?
我在virtualenv中运行了代码和覆盖范围,但是我认为这可能不是问题。
ENV:
Python 3.6.8
Django 2.2.3
Coverage 4.5.4
答案 0 :(得分:1)
默认情况下,覆盖范围可能是使用python2而不是python 3。 您可以使用:
coverage3 run --source='.' manage.py test myapp