我是在Django中使用生菜進行BDD開發的新手,但是,我需要幫助確定如何爲我的模型加載初始測試數據以及如何刷新它們在每次測試之前。在每次測試生菜之前創建初始數據條目和沖洗django
1
A
回答
1
我認爲最簡單的出發點是看http://lettuce.it/tutorial/tables.html。對於「沖洗」的數據,我用一個terrain.py
有如下代碼:
from django.db import transaction
@before.each_feature
def begin_transaction(feature):
#shouldn't strictly be needed, but I've gotten
#inconsistent results without it
transaction.rollback()
transaction.set_autocommit(False)
@after.each_feature
def end_transaction(feature):
transaction.rollback()
可能更適合使用before.each_scenario
。使用適合你的東西。
0
我有以下幾點:
@before.each_scenario
def load_scenario_fixture(scenario):
call_command('loaddata', 'lettuce_global', interactive=False, verbosity=0)
fixture_path = os.path.join(scenario.feature.name.lower().replace(' ', '_'), scenario.name.lower().replace(' ', '_'))
logger.info("Loading fixture:")
logger.info(" " + fixture_path)
call_command('loaddata', fixture_path, interactive=False, verbosity=0)
@after.each_scenario
def flush_database(scenario):
logger.info("Flushing the test database ...")
call_command('flush', interactive=False, verbosity=0)
這負載在全球測試夾具的每個場景之前,也是一個特定的夾具的方案。夾具文件路徑格式爲{app}/fixtures/{feature name}/{fixture name} 在場景完成後,我只需使用Django flush命令進行重置。
相關問題
- 1. 在每次測試之前初始化MEDIA_ROOT和Django存儲
- 2. 在運行測試之前在Django中創建數據庫條目
- 3. 在每個Django測試之前初始化MEDIA_ROOT
- 4. 測試前沖洗BD。設置生菜terrain.py
- 5. 如何在每次測試之前讓Rails測試數據庫重建?
- 6. django - 測試中的初始數據
- 7. 在Zope 3測試之前加載初始數據
- 8. Django單元測試無需每次運行時創建測試數據庫
- 9. 如何在每次測試之前使用kotlin-test框架初始化變量
- 10. JUnit @Before和@After在每次測試之前和之後執行
- 11. Django測試客戶端不創建數據庫條目
- 12. Laravel 4 PHPUnit Sqlite數據庫,在每次測試之前刪除項目
- 13. 在TestNG中爲並行測試初始化和清理每個測試數據
- 14. 如何在Spring的每個測試之前重新創建數據庫?
- 15. 爲休眠驅動測試創建初始數據
- 16. 在創建表條目之前處理表單數據
- 17. FactoryGirl - 如何在運行測試之前在數據庫中生成類別條目的層次結構?
- 18. 在每個單元測試之前創建會話
- 19. Junit前提條件和測試數據
- 20. 第二次硒測試在第一次測試完成之前開始
- 21. 需要驅動程序在C#每次測試前初始化/硒
- 22. decent_exposure每次創建雙條目
- 23. 在Pentaho Kettle的步驟初始化之前測試數據庫連接?
- 24. 在編寫測試時初始化活動之前設置數據庫
- 25. 如何在Spring測試時在上下文初始化之前初始化測試類?
- 26. 量角器 - 每次測試前和每次測試後都運行代碼
- 27. TDD:如何創建測試初始值的測試
- 28. 如何在每次測試之前重置仿真器數據庫?
- 29. 如何在每次測試之前重置JPA控制的數據庫?
- 30. JUnit在測試初始化之前做一些事情
transaction.set_autocommit在Django 1.5上不可用。 –