2014-04-25 3 views
0

여기에 도움이 필요합니다 .. specs2을 사용하므로 내 통합 테스트을 실행하십시오. 그래서 모두가 실행되기 전에, 메신저 내가 어떻게 한 번에 모든 테스트는 이러한 서버를 종료시기를 알 수있는 방법을 찾을 필요가, 문제가Specs2 IT 환경 tearDown

을 (가짜 서버 내 시스템과 상호 작용) 내 simplicators을 설정 끝난. 이후 () 단계는 각각의 개별 테스트 범위에서 발생하므로 충분하지 않습니다. 나는 ALL 테스트가 끝난 후에 실행할 제품이 필요합니다.

어떤 아이디어가 있습니까? 미리 감사드립니다!

답변

1

발견! here is how it is done!

당신도 그것으로 어려움을 겪고있는 경우 - 여기에 IT 봉투 설정에 좋은 인터페이스 :

trait FakeServer { 
    def setup: Unit 
    def tearDown: Unit 
} 

object ITEnvironment extends FakeServer{ 
    private val simplicators: Seq[FakeServer] = Seq(new FakeWebServer) 

    override def setup: Unit = simplicators foreach { server => server.setup} 
    override def tearDown: Unit = simplicators foreach { server => server.tearDown} 
} 

trait Specs2ITEnvironment { this: Specification => 
    sequential 
    override def map(fs: =>Fragments) = Step({ITEnvironment.setup})^fs^Step({ITEnvironment.tearDown}) 
} 

class LoginIT extends SpecificationWithJUnit with Specs2ITEnvironment{ 
    ... your test here ... 
}