在我的一个测试文件中,我调用了一个Django管理命令:
def setUpModule():
management.call_command('loaddata', 'frontend/fixtures/chemicals.json',
verbosity=0)
management.call_command('create_indexes_and_matviews',
db_name, db_user, db_pass,
verbosity=2)
当我使用manage.py test
在本地运行时,此测试运行正常。
然而,在特拉维斯,我得到了这个错误:
======================================================================
ERROR: setUpModule (frontend.tests.test_api_views)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/travis/build/.../frontend/tests/test_api_views.py", line 35, in setUpModule
verbosity=2)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/__init__.py", line 95, in call_command
raise CommandError("Unknown command: %r" % name)
CommandError: Unknown command: 'create_indexes_and_matviews'
我怎样才能让特拉维斯了解这个命令?
这是我的Travis档案:
language: python
python:
- "2.7"
addons:
postgresql: "9.3"
env:
- SECRET_KEY=test DB_NAME=dbtest DB_USER=test DB_PASS=test
before_install:
- export DJANGO_SETTINGS_MODULE=....settings.local
- export PYTHONPATH=$HOME/builds/...
install:
- pip install -r requirements.txt
- pip install -r requirements/local.txt
before_script:
- psql -U postgres -c 'CREATE DATABASE dbtest;'
- psql -U postgres -c "CREATE EXTENSION postgis" -d dbtest
- psql -U postgres -c "CREATE EXTENSION postgis_topology" -d dbtest
- psql -U postgres -c "CREATE USER test WITH CREATEUSER PASSWORD 'test';"
- psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE dbtest to test;"
- psql -U postgres -c "ALTER USER test CREATEDB;"
- cd frontend && python manage.py migrate
script:
- python manage.py test
我是否应该添加一些内容以便知道在何处查找管理命令?
答案 0 :(得分:0)
从我的实践中我知道这个问题的两个原因。
A。 the_app
中列出了create_indexes_and_matviews
的{{1}}(可能会错过,if / else或try / except magic除外)
要检查实际设置,请尝试将以下命令添加到Travis文件
settings.INSTALLED_APPS
B。错过了应用依赖项。尝试使用以下命令获取travis上的实际错误:
echo "from django.conf import settings;print(settings.INSTALLED_APPS)" | python manage.py shell
通常,真正的导入错误足以找到修复程序。