2013-04-01 4 views
1

PlayFramework에서 테스트를 실행할 때 모든 테스트 (true 격리) 및 Evolutions가 재생되기 전에 데이터베이스가 지워지기를 기대하지만 어떻게 든 그럴 필요는 없습니다.클리어 데이터베이스에서 테스트를 실행하는 방법은 무엇입니까?

일반적으로 모든 테스트를 실행하기 전에 데이터베이스를 지울 수 있습니까? 아니면 일반적인 방법이 없는데도 톰을 사용할 때 어떻게합니까?

편집 : 나는 이미 H2 알 - 심지어 데이터베이스의 특성과 테스트를위한 MODE하지만 다음과 같이 코멘트했다가, 내가 원하는 것은 같은 테스트 및 프로덕션 데이터베이스의 설정을 가지고 있습니다. 이를 위해서는 각 테스트 전에 DB를 다시로드 할 수 있어야합니다.

+0

가능한 [알려진 상태로 재설정하여 Play 프레임 워크에서 MySQL과 같은 비 메모리 데이터베이스에 대한 단위 테스트를 만드는 방법?] (http://stackoverflow.com/questions/14750375/how-to-create -unit-tests-non-in-memory-database-such-as-mysql-in-play-fr) - 링크 된 답변이 필요한 대답을 포함하고있는 것으로 결론을 맺었습니다. – fresskoma

+0

I 've 've 대답/질문을 보았지만 Java & Ebean과 관련된 것 같습니다. 나는'어둠 '을 사용하고 있습니다. –

답변

-1

메모리 데이터베이스에서 테스트를 실행하십시오. 완료 방법에 대한 예제는 http://www.playframework.com/documentation/2.0/ScalaTest을 확인하십시오. 그런 식으로, db는 각 테스트가 시작되기 전에 evolutions에서 시작될 것이고, 테스트를 위해 특정 데이터 만 추가해야합니다.

+0

사실, inMemory 데이터베이스를 사용하는 것이 좋습니다. 나는 이미 그 솔루션을 사용하고 있지만 실제로하고 싶은 것은 프로빙 서버와 동일한 데이터베이스 설정을 테스트하는 것입니다. 그리고 그렇게하기 위해 각 테스트 후에 DB를 다시로드해야합니다. –

+0

같은 설정을 원한다고 말하면 테스트를 실행할 때 데이터베이스에 데이터를 표시하려고합니까? 기본적으로 어떤 시점에서 prod db의 정확한 복사본을 만든 다음 각 테스트 전에 그 시점으로 리셋합니까? – Jakob

+0

아니요, 아니요. 간단한 예가 서버 인코딩 설정, 연결 트리거, 연결 풀 등입니다. 나는 정말로 서버 설정에 대해 이야기하고있다. –