Я запускаю несколько тестов для встроенной базы данных postgres, используя otj-pg-embedded.Несмотря на то, что локальные тесты выполняются нормально, они не выполняются при запуске Gitlab-CI с недопустимым исключением из состояния.Gitlab CI собирает его и запускает тесты, которые просто не включают в себя otj-pg-внедрено.
Я прокомментировал большинство тестовых классов и определил проблему следующим образом:
public static SingleInstancePostgresRule pg = EmbeddedPostgresRules.singleInstance();
import com.goldfinger.models.AuditLog;
import com.opentable.db.postgres.embedded.FlywayPreparer;
import com.opentable.db.postgres.junit.EmbeddedPostgresRules;
import com.opentable.db.postgres.junit.PreparedDbRule;
import org.junit.*;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class SQLAuditRepositoryTest {
private static SQLAuditRepository sqlAuditRepository;
private static AuditLog auditLog_1;
private static AuditLog auditLog_2;
private static AuditLog auditLog_3;
private static List<AuditLog> auditLogList;
@ClassRule
public static SingleInstancePostgresRule pg = EmbeddedPostgresRules.singleInstance();
@Test
public void simpleTest() {
assert (2 == 2);
}
}
Это трассировка стека:
java.lang.IllegalStateException: Process [/tmp/embedded-pg/PG-06e3a92a2edb6ddd6dbdf5602d0252ca/bin/initdb, -A, trust, -U, postgres, -D, /tmp/epg6584640257265165384, -E, UTF-8] failed
at com.opentable.db.postgres.embedded.EmbeddedPostgres.system(EmbeddedPostgres.java:626)
at com.opentable.db.postgres.embedded.EmbeddedPostgres.initdb(EmbeddedPostgres.java:240)
...
... many lines here
...
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Это gitlab-ci.yml
image: java:latest
services:
- postgres:latest
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
package:
stage: build
script:
- ./gradlew assemble
test:
stage: test
script:
- ./gradlew check
artifacts:
reports:
junit: build/test-results/test/*.xml
Любая помощь будет оценена.