2012-09-23 38 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)