覆盖范围无法作为Python代码运行'manage.py'

时间:2019-09-12 08:20:34

标签: python django code-coverage

我正在使用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

1 个答案:

答案 0 :(得分:1)

默认情况下,覆盖范围可能是使用python2而不是python 3。 您可以使用:

coverage3 run --source='.' manage.py test myapp