2012-09-23 37 views
0

我有一个项目在许多wsgi应用程序(来自contrib的网站框架正在大量使用)之间共享数据库。每个wsgi应用程序在项目目录中都有它自己的模块,它自己的settings.py在主项目目录中延伸global_settings.py(每个设置文件只是从global_settings导入*)。也有些网站有他们自己的网址和额外的意见/模板,不能在全球范围内进行测试。尽管所有的网站都分享了大部分应用同样由于视图的自定义(subclassed cbl视图),我需要分别测试每个站点。 Django的只有在显示目录的应用程序,所以我不能出具预计tests.py如何使用网站框架/多个设置来测试django项目中的多个网站

./manage.py test first_site --settings=first_site.settings 

因为first_site仅仅是一个Python模块不是一个Django应用程序。我该如何克服这一点?

回答

0

我发现这一点: http://pypi.python.org/pypi/django-discover-runner

安装Django的发现亚军(子母画面为例)后:

pip install -U django-discover-runner 

你只需要一行添加到自定义站点设置:

TEST_RUNNER = 'discover_runner.DiscoverRunner' 

和该命令会从正常的Python模块运行测试称为first_site

./manage.py test first_site --settings=first_site.settings 

看起来合法。

0

我才刚刚开始多点测试,并与现在一个基本的解决方案提出了:

from django.test import override_settings 

@override_settings(SITE_ID=1) 
def test_multisite_one(self): 
    from django.contrib.sites.models import Site 
    self.assertEqual(1, Site.objects.get_current().id)