Python在运行Django测试时会出错

时间:2018-04-23 06:11:02

标签: python django

我在运行runtests.py时遇到错误。 我使用Ubuntu 16.04和Django 1.6.5版。我从github复制了代码。

./runtests.py: line 3: os.environ[DJANGO_SETTINGS_MODULE]: command not found 
./runtests.py: line 4: syntax error near unexpected token `(`
./runtests.py: line 4: `test_dir = os.path.dirname(__file__)`

我的 runtest.py 文件:

  import os
  import sys
  os.environ['DJANGO_SETTINGS_MODULE'] = 'test-settings'
  test_dir = os.path.dirname(__file__)
  sys.path.insert(0, test_dir)

  import django
  from django.test.utils import get_runner
  from django.conf import settings


   def runtests():
       if django.VERSION >= (1, 7):
           django.setup()
       TestRunner = get_runner(settings)
       test_runner = TestRunner(verbosity=1, interactive=True)
       failures = test_runner.run_tests(
           ['quiz', 'essay', 'multichoice', 'true_false']
       )
       sys.exit(bool(failures))

   if __name__ == '__main__':
       runtests()

我怎样才能解决这些错误?

2 个答案:

答案 0 :(得分:2)

看起来你正试图在命令行上执行这个脚本,就像在./runtests.py中一样,它正在调用一个bash解释器,因此你会得到各种奇怪的错误。解决这个问题的两种方法:

  1. python runtests.py
  2. 一样运行
  3. 将一个shebang放在文件#!/usr/bin/env python的顶部,然后运行./runtests.py

答案 1 :(得分:0)

根据this post,你必须改变

os.environ['DJANGO_SETTINGS_MODULE'] = 'test-settings'

os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'

注意

test必须是您的 django项目名称。如果不是,请相应更改。