나는 django 유닛 테스트를 좋아하는데, 실행시 테스트 데이터베이스를 만들고 삭제하기 때문이다.토네이도. 장고와 같은 테스트 러너와 테스트 데이터베이스
토네이도에 대한 테스트 데이터베이스를 만드는 방법에는 어떤 것이 있습니까?
UPD : 테스트 실행시 postgresql 테스트 데이터베이스 생성에 관심이 있습니다.
나는 django 유닛 테스트를 좋아하는데, 실행시 테스트 데이터베이스를 만들고 삭제하기 때문이다.토네이도. 장고와 같은 테스트 러너와 테스트 데이터베이스
토네이도에 대한 테스트 데이터베이스를 만드는 방법에는 어떤 것이 있습니까?
UPD : 테스트 실행시 postgresql 테스트 데이터베이스 생성에 관심이 있습니다.
가장 쉬운 방법은 테스트 데이터베이스에 SQL 덤프를 사용하는 것입니다. 데이터베이스를 만들고 조명기로 채우고 파일에 작성하십시오. 테스트를 실행하기 전에 (또는 DB를 재설정하려는 경우) load_fixtures
으로 전화하십시오. 이 방법은 확실히 개선 될 수 있지만 내 요구에 충분히 적합합니다.
import os
import unittest2
import tornado.database
settings = dict(
db_host="127.0.0.1:3306",
db_name="testdb",
db_user="testdb",
db_password="secret",
db_fixtures_file=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures.sql'),
)
def load_fixtures():
"""Fixtures are stored in an SQL dump.
"""
os.system("psql %s --user=%s --password=%s < %s" % (settings['db_name'],
settings['db_user'], settings['db_password'], settings['db_fixtures_file']))
return tornado.database.Connection(
host=settings['db_host'], database=settings['db_name'],
user=settings['db_user'], password=settings['db_password'])
이렇게하면됩니다. –
토네이도는 특정 데이터베이스를 묶어 놓지 않으므로 사용중인 특정 데이터베이스를 참조 할 때이 질문에 더 잘 응답 할 수 있습니다. 즉, MongoDB 백엔드 용 테스트 장비를 사용하지만 PostgreSQL 또는 MySQL을 사용하고있을 수 있습니다. – ESV
@ESV 여기 조롱하는 데 문제가 있습니다. 우리는 토네이도에 대해 설명 된 postgresql 데이터베이스 스키마가 없습니다. BTW 우리는 장고 모델에서 SQL을 생성하고 테스트에 사용할 수 있습니다. –