spray을 사용하여 간단한 REST API를 작성 중이며 일부로 모의 데이터로 데이터베이스를 설정하고 테스트 데이터베이스를 사용하여 REST 서버를 가동 할 수 있기를 원합니다.테스트의 일부로 서버를 실행하는 방법은 무엇입니까?
문제는 테스트를 실행하기 위해 테스트 인스턴스를 위로 돌리는 방법을 알지 못한다는 것입니다. 안내해주십시오.
spray을 사용하여 간단한 REST API를 작성 중이며 일부로 모의 데이터로 데이터베이스를 설정하고 테스트 데이터베이스를 사용하여 REST 서버를 가동 할 수 있기를 원합니다.테스트의 일부로 서버를 실행하는 방법은 무엇입니까?
문제는 테스트를 실행하기 위해 테스트 인스턴스를 위로 돌리는 방법을 알지 못한다는 것입니다. 안내해주십시오.
sbt의 관점에서 테스트와 생산 코드의 차이점은 대부분 코드의 위치입니다. the configuration scope facility in sbt에 의해 구동 것 :
가 구성 자체 클래스 경로, 소스, 생성 된 패키지 등의 구성 개념은 SBT 관리 종속 라이브러리 종속성에 사용 아이비,에서 오는 잠재적으로, 빌드의 맛을 정의하고,에서 MavenScopes.
Compile
에서 수행 할 수있는 작업은 Test
에 쉽게 적용 할 수 있으며 그 반대의 경우도 마찬가지입니다. 소리가 나는 것처럼 쉽지는 않을 수도 있지만 길을 따라 많은 농구가 있어서는 안됩니다.
As I pointed out in a comment, sbt run
할 때 마치 sbt compile:run
... 음, 거의 그렇다고 할 수 있습니다. 데이터베이스 및 서버의 테스트 인스턴스를 구성하고 모두 sbt test:run
또는 그 이상으로 실행하십시오. 실행 테스트의 일부분, 즉 sbt it:test
으로 실행을 제공 할 통합 테스트 등의 테스트를 작성하십시오. Integration Tests.
/src/test에 개체를 추가 할 수 있습니다. 이 객체는 모의 데이타베이스를 사용하는 것과는 달리 정상적으로 서버를 부트 스트랩합니다.
이 객체를 테스트 클래스로 식별하지 않으면 테스트 슈트를 방해하지 않습니다. 이는 사용중인 테스트 시스템에 따라 다릅니다.
예를 들어 Spec2에서는 사양을 확장하는 모든 테스트 클래스가 자동으로 실행됩니다. 이 클래스를 확장하지 않으면 실행되지 않습니다.
추가 패키지 수준의 분리가 현명 할 수 있습니다.
"Object TestSperver extends App"과 같은 것을 시도했지만, "sbt run"을 시도했을 때 실행할 수있는 클래스 중 하나로 표시되지 않았습니다. 나는 그것을하기 위해 무엇을해야합니까? 참조 : https://github.com/ririw/circusoc-backend/blob/master/src/test/scala/com/circusoc/TestTest.scala – riri
''sbt test : run'을 실행해야합니다. –