[英]Django WebServer During Testing
我正在用Django編寫一個復雜的Web應用程序。 有很多組件。 特別是兩個,分別是Django服務器(以下稱此Server
)和一個C ++應用程序服務器(以下稱此Calculator
),該Server
為Server
提供計算。 當Server
希望完成計算時,它將命令發送到正在監聽Calculator
的套接字。 像這樣:
{
"command": "doCalculations"
}
現在, Calculator
可能需要在不同時間提供不同的信息來完成其工作。 因此,不是將數據直接傳遞給命令中的Calaculator
,而是由Calculator
詢問其需要什么。 它通過在Server
上調用RESTful API來實現:
https://Server/getStuff?with=arguments
然后, Calculator
將使用此調用中的數據進行計算,並使用答案答復Server
。
當我嘗試使用Django的unittest框架進行單元測試時,問題就開始了。 我在測試中設置了一堆數據結構,但是當Server
調用Calculator
,它需要在REST API中提供此數據,以便Calculator
可以獲取所需的數據。 問題在於Django測試框架不會啟動Web服務器,如果我手動執行此操作,它將從真實數據庫而不是測試用例中讀取數據。
有誰知道如何使用外部人員/流程可用的數據運行單元測試?
我希望這是有道理的...
您需要指定要加載到測試類中的燈具。
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading
class MyTest(TestCase):
fixtures = ['data.json']
def setUp(self):
# do stuff
def tearDown(self):
# do stuff
可以使用python manage.py dumpdata
檢索data.json
python manage.py dumpdata
。
它將以JSON格式填充來自主數據庫的數據。
data.json
應該存在於您正在測試的應用程序的fixtures
文件夾中。 (如有必要,創建一個)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.