Пружинная загрузка и пн go дБ Gitlab CI / CD - PullRequest
0 голосов
/ 29 апреля 2020

Я установил API начальной загрузки, который выполняет операции CRUD с запущенным MongoDB. Мне нужно запускать команды на CI с размещенным MongoDB автоматически, используя GitLab

mvn clean install -B

и

mvn clean test

из .gitlab-ci.yml.

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.11.2.jar:na]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
 Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[na:na]
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[na:na]
    at java.base/java.net.Socket.connect(Socket.java:609) ~[na:na]
    at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-3.11.2.jar:na]
    ... 3 common frames omitted

Ищите файл .gitlab-ci.yml, который выполняет Mon go создание экземпляра сервера и создание БД перед запуском mvn clean install

текущий .gitlab-ci.yml

image: maven:3.6-jdk-11

stages:
  - build

cache:
  paths:
    - target/

services:
  - mongo:latest

build:
  stage: build
  script:
    - "mvn clean install -B"
  artifacts:
    paths:
      - ./target/*************

1 Ответ

0 голосов
/ 04 мая 2020

Спасибо за выдающиеся ответы / комментарии

Мне удалось решить проблему с помощью embed.mon go таким образом, что при обычном запуске API он использует фактическое хранилище Mon go. Тесты будут выполняться на embed.mon go

Добавлена ​​зависимость:

  <dependency>
            <groupId>de.flapdoodle.embed</groupId>
            <artifactId>de.flapdoodle.embed.mongo</artifactId>
            <version>1.48.0</version>
            <scope>test</scope>
  </dependency>

Common Mon go config

@Configuration
@EnableAutoConfiguration(exclude = { EmbeddedMongoAutoConfiguration.class })
public class MongoConfig {
}

Аннотации, использованные для теста класс

@ContextConfiguration(classes = {MongoConfig.class})
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureDataMongo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...