2017-11-09 11 views
0

私はScalaの開発者ですので、私は、SBTの例で私の考えを説明しようとするでしょうが、私は、Java開発者は私にテストスイートを実行するmavenアーティファクトをビルドするにはどうすればよいですか?どのようにsbtテストは動作しますか?

伝統のScala/Javaプロジェクトの構造を理解することができます信じては以下のようなものです:

src -> 
- main 
- test 
- it 

テストフォルダは概念的にユニットテスト(アプリケーションロジックのテスト用)です。だからあなたは 'sbt test'を実行し、あなたのアプリケーションをテストします。このコードはアプリケーションに近いものでなければなりません。

はそれはofftopicだったかもしれ、ここに私の質問です:

はすべて私のテストを実行しますジャーアーティファクトを構築することが可能ですか?私はテストを実行するためにsbtを開始したくありません。私は私がする必要が信じ

...テストがそうで

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

に合格した場合、これは私に終了コード0を与えるだろう、統合テストスイートに

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

を多くの瓶の成果物を構築したいですメインブロック内でテストを実行してください。

答えて

2

あなたのプログラムの主な機能の中であなたのテストを混ぜることはお勧めできません。とScalaでうまく動作するはずですが、Scalaの自己を使ったことはありませんでした。

ここに必要なものを書いておくことは大いにありますが、ドキュメントや多くの例で詳しく説明しています。 POM.XMLファイルで構成されたプロファイル

<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> 

すべてを、次のい

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

:あなたは、たとえばちょうど例えばでユニットテストや受け入れテストを実行することができるように含まれ、除外されている別の目標を指定することができます私の受け入れテストは、ATのように、myTestAT.javaという名前になっています