2012-06-07 50 views
3

我最近將一個應用程序分成子目錄。例如,我有一個「商店」應用程序,我把它分成了shop/foo,shop/bar,shop/baz子目錄,將每個應用程序視爲一個單獨的應用程序,所以我的INSTALLED_APPS現在看起來像:在子目錄中調用django測試

"shop", 
"shop.foo", 
"shop.bar", 
"shop.baz", 
... 

我希望能夠通過這樣做來運行店/富/ tests.py測試:

python manage.py test shop.foo 

但是,如果我這樣做,我得到的錯誤:

ValueError: Test label 'shop.foo' does not refer to a test 

在另一方面,我可以通過這樣做來運行測試:

python manage.py test foo 

爲什麼會發生這種情況,我可以更改什麼,以便我可以將測試作爲「shop.foo」而不是「foo」運行?

回答

6

這是因爲Django的預計參數test命令是以下格式:

app_label[.TestCase[.test_method]] 

沒有與該股測試運行(見Carl Meyers comment)這樣做的方式。如果一切順利,這應該在Django 1.5中解決,但同時你可以使用另一個接受完整模塊路徑的轉輪:django-discovery-runner

3

django-discover-runner已經取得的Django 1.6的一部分.. :)

對於< 1.6版,它可以被用來作爲第三方的應用程序。