Moja aplikacja używa Spring-Boot 1.4.1.RELEASE, a konfiguracja mojego źródła danych wygląda następująco;Usterka zatwierdzania źródła danych rozruchu wiosny
spring:
datasource:
url: ***
username: ***
password: ***
driver-class-name: oracle.jdbc.driver.OracleDriver
initial-size: 1
max-active: 100
max-idle: 30
min-idle: 1
max-wait: 0
pool-prepared-statements: true
max-open-prepared-statements: 3
Problem polega na tym, że ostatni przypadek testowania mojego integracji jeśli zawiera logikę @Sql
konfiguracji w to, nie popełnić ostatniej konfiguracji SQL. Kłopoty zdarzają się rzadko ze względu na zmianę kolejności spraw oraz fakt, że istnieje tylko garść przypadków z logiką instalacji, aby przygotować DB. Nie ma konfiguracji oprócz tej dla OracleDB, i to jest w ConfigClass
.
@SpringBootTest(classes = ConfigClass.class)
public class EtcTest {
@After
public void teardown() {
// teardwon X, Y, & Z
}
@Test
@Sql("setupX.sql")
@Sql("setupY.sql")
@Sql("setupZ.sql")
public void get_fromDb() {
List<Etc> list = buildExpectedList();
Obj expected = buildExpected();
Obj actual = getCallToAPI();
assertThat(rs.getX()).isEqualTo(expected.getX());
assertThat(rs.getY()).isEqualTo(expected.getY());
assertThat(rs.getZ()).containsAll(list);
}
}
Kłopot, na przykład w powyższym przypadku, jeśli to było ostatni przypadek integracji że nie popełnić ostatni SQL w @Sql
adnotacji, mianowicie SetupZ.sql
, ale dane nie są całkowicie brakuje, to wstawia klucz podstawowy, a czasami columnA
lub columnB
, to tak, jakby coś naprawdę nie tak.
Czy obecność lub brak jakiejś konfiguracji spowoduje to? Jeśli nie, jaki byłby powód?
Jeśli używasz automatycznej konfiguracji, należy zapoznać się [notatka release] (https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4 -Release-Notes) podczas aktualizacji, w szczególności [tej sekcji] (https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes#datasource-binding). Wszystkie ustawienia dotyczące puli połączeń zostały przeniesione do dedykowanej przestrzeni nazw. Przejrzyj swoją konfigurację. –
@StephaneNicoll Używam tej samej wersji, jedyną zmianą było to, że dodałem kilka metod konfiguracji i odkładania, które są adnotowane adnotacjami junit przed i po. Ostatniego razu udało mi się pomyślnie zbudować kompilację, gdy w jakiś sposób kompilacja zakończyła testem związanym z bazami danych niebędącą bazą danych, teraz ponownie otrzymuję ten sam problem z ponownym zgłoszeniem w ostatnim przypadku. –
Dla Oracle 9i należy używać 'oracle.jdbc.OracleDriver' zamiast' oracle.jdbc.driver.OracleDriver' jako Oracle oświadczyło, że 'oracle.jdbc.driver.OracleDriver' jest przestarzałe. –