当通过Fabric执行时,django app的测试会为“render_to_string”生成模板未找到错误

时间:2011-12-13 07:12:59

标签: django unit-testing fabric

当我使用fabric在远程服务器上运行测试时,出现错误信息:

File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 138, in find_template
raise TemplateDoesNotExist(name)
TemplateDoesNotExist: index.html

我正在尝试使用“render_to_string()”将模板呈现为字符串 如果我登录到服务器并手动运行测试(python manage.py测试应用程序),它正常工作。在通过结构运行时会发生此错误。

这是我的面料代码:

from __future__ import with_statement
from fabric.api import local
import os
from fabric.api import *

env.hosts = ['server.com']
production_project_path = '/path/to/production/app/'

def run_remote_test():
    run("python %s/manage.py test app"%production_project_path)

我错过了什么吗? 注意:我没有使用虚拟环境

1 个答案:

答案 0 :(得分:1)

然后让我们做这个官方。 ;)

在这种情况下,问题是manage.py期望从项目目录中运行,因此重写以上内容:

from __future__ import with_statement
from fabric.api import local
import os
from fabric.api import *

env.hosts = ['server.com']
production_project_path = '/path/to/production/app/'

def run_remote_test():
    with cd(production_project_path):
        run("python manage.py test app")

解决了这个问题。