テストを実行するSpringBootとGitLab CI

Sebsir:

私はちょうど私のアプリを展開するだけでなく、テストを実行するためにGitLab CIを使用したいと思います。私は、アセンブリこれに管理する.ymlファイル:

image: java:8

stages:
  - build
  - test

build:
  stage: build
  script: ./gradlew build
  artifacts:
    paths:
      - build/libs/myApp-4.0.0-SNAPSHOT.jar

unitTests:
  stage: test
  script:
    - ./gradlew test

そしてGitLabパイプラインIに次のエラーが表示されます。

引き起こさar.com.sebasira.myApp.myAppApplicationTests> contextLoads FAILED java.lang.IllegalStateException:org.springframework.beans.factory:によって引き起こさorg.springframework.beans.BeanInstantiationException:org.springframework.beans.factory.BeanCreationExceptionはによって引き起こされます。引き起こさorg.springframework.beans.BeanInstantiationException:によって引き起こさBeanCreationException org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException

私は右、これはデータベースに関連している可能性が推測していますか?私はランナーが私のサーバーで資格情報を使用してそのデータベースを提供する必要がありますか?

もしそうなら、私はそれをどのようにすればよいですか?I'currently使用してapplication.propertiesDBへの接続を定義するファイルを。

そして、1つの以上の質問... .gitlab-ci.yml私はへのパスを配置する必要があり、ファイル.jar名は、私は私のアプリのバージョンを更新毎回変更されることはなく。私はそれを手動で変更する必要がありますか?

rieckpil:

あなたがこのテストで全体Springコンテキストを開始されると注釈付き(私はそれは春ブーツから生成された標準的なテストだと思います)@RunWith(SpringRunner.class)@SpringBootTest、あなたは、データソースを提供する必要があります。あなたは、次のいずれかを実行できます。

  • お使いのデータベース資格情報の指定application.propertiesではsrc/test/resources(私はすべてのテストに本番データベースに接続していないだろうと、あなたは、データベース・サーバー上のテスト・データベースを提供することができます)
  • 組み込みを使用しH2、このテストのために
  • 使用https://www.testcontainers.org/を Springアプリケーションのテストのために本物の、新鮮なデータベースを提供するために、

あなたのGitlabCIの質問について:ちょうど使用すると、*任意の一致するように.jar、どのバージョンにかかわらず:- build/libs/myApp-*.jar

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=208807&siteId=1