2017-11-09 1 views
0

나는 스칼라 개발자, 그래서 나는 SBT 예와 내 생각을 설명하려고합니다하지만 난 자바 개발자가 나에게 이해할 수 보라테스트 스위트를 실행하는 메이븐 아티팩트를 작성하는 방법은 무엇입니까? 어떻게 sbt 테스트가 효과가 있니?

전통 스칼라/자바 프로젝트 구조는 다음과 같다 :

src -> 
- main 
- test 
- it 

테스트 폴더는 개념적으로 단위 테스트 (앱 논리 테스트 용)입니다. 따라서 'sbt test'를 실행하여 응용 프로그램을 테스트 할 수 있습니다. 이 코드는 응용 프로그램에 가까이 있어야합니다.

그것은 내 모든 테스트를 실행할 것이다 항아리의 유물을 구축 할 수 있습니다 :

는 여기에, 논외였다 내 질문이 될 수있다? 나는 시험을 치르기 위해 단지 sbt를 시작하고 싶지 않습니다. 시험 등

java my-super-service-it-case2.jar 

를 통과 한 경우에 나는 내가 필요 보라

...이 종료 코드를 나에게 공을 줄 것

java my-super-service-it-case1.jar 

통합 테스트 스위트 많은 항아리의 유물을 구축하고자 메인 블록 내에서 테스트를 실행하십시오 ..

답변

2

프로그램의 주요 기능 내에서 테스트를 혼합하는 것을 권장하지 않습니다. 수행하고자하는 바를 정확히 수행 할 수있는 매우 우수한 플러그인이 있습니다, Maven Surefire Plugin 그리고 스칼라에서는 잘 작동하지만 스칼라에서는 내 자신을 엉망으로 다루지 않아야합니다.

여기에 필요한 것을 작성하는 것이 중요하지만 문서 및 많은 예제에서 잘 설명되어 있습니다. 당신이 할 수 있도록 다른이 목표를 포함하고 제외를 지정할 수 있습니다 단지와 단위 테스트 또는 입학 시험을 실행 예를 들어, 예를 들어 : 다음 프로파일이 POM.XML 파일에 구성한

mvn verify -P acceptance-tests -Dbuild.env=sit 

<profile> 
    <id>acceptance-tests</id> 
    <activation> 
    <property> 
     <name>env.BUILD_STAGE</name> 
     <value>ACCEPTANCE</value> 
    </property> 
    </activation> 
    <build> 
    <plugins> 
     <!-- skip unit tests --> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
      <skipTests>true</skipTests> 
     </configuration> 
     </plugin> 

     <!-- run acceptance tests (during integration-test phase) --> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <includes> 
      <include>**/*AT*.*</include> 
      </includes> 
      <excludes> 
      <exclude>**/*Test.*</exclude> 
      <exclude>**/*IT.*</exclude> 
      </excludes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 

모든 내 수락 테스트의 이름은 AT like, myTestAT.java입니다.

관련 문제