第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot 測試數(shù)據庫初始化運行兩次

Spring Boot 測試數(shù)據庫初始化運行兩次

翻過高山走不出你 2023-03-23 14:12:51
我正在測試 Spring Boot 批處理應用程序。我正在使用內存中的 H2 DB,我想用一些數(shù)據對其進行初始化,但它因Unique index or primary key violation: PRIMARY_KEY_7 ON ....我試過調整application.properties,添加和刪除spring.jpa.hibernate.ddl-auto=create-dropspring.jpa.properties.hibernate.default_schema=AD1還調整了spring.datasource.url.實體如下:@Table(schema = "ad1",name = "Student")public class Student {    @Id    @Column(name = "student_id")    private String studentId;    @Column(name = "student_name")    private String studentName;    @Column(name = "favourite_subject")    private String favouriteSubject;    @Column(name = "enrollment_date")    private LocalDate enrollmentDate;}要注意的是該schema屬性已設置為ad1data-h2.sql住的地方src/test/resources如下:Insert into ad1.Student (student_id,student_name,favourite_subject,enrollment_date) values ('1151AB26','John','Math',to_date('01-JAN-19','DD-MON-RR'));application.properties同樣在src/test/resources如下:spring.datasource.platform=h2spring.datasource.driver-class-name=org.h2.Driverspring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=Oracle;INIT=CREATE SCHEMA IF NOT EXISTS AD1spring.datasource.username=saspring.datasource.password=saspring.jpa.database-platform=org.hibernate.dialect.H2Dialectspring.jpa.properties.hibernate.default_schema=AD1spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImplspring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImplspring.batch.job.enabled=false要注意的是spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=Oracle;INIT=CREATE SCHEMA IF NOT EXISTS AD1. 我必須將架構初始化為 AD1我正在使用 Cucumber,所以我有一個 Cucumber 測試類:@RunWith(Cucumber.class)@CucumberOptions(features = "src/test/resources", plugin = { "pretty", "html:target/cucumber" })public class CucumberTest {
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

正如我所提到的,在故障排除過程中,我注意到里面的一行data-h2.sql以某種方式被運行了兩次,因此出現(xiàn)了這個唯一索引違規(guī)。進一步排除故障,我追溯到它加載數(shù)據腳本的過程中的點(即。data-h2.sql),并注意到它正在加載該腳本兩次。一進target\classes\data-h2.sql一進target\test-classes\data-h2.sql。老實說,我不知道為什么這個腳本文件被復制到target\classes\data-h2.sql.


最后我發(fā)現(xiàn)這是一個eclipse問題。當我使用命令行運行測試時mvn clean test。測試運行完美,但是當我用 eclipse 運行測試時,Run As -> JUnit Test我會遇到這個問題。出于某種原因,每當我在 eclipse 中清理應用程序時,它Project -> Clean都會將所有資源文件src/main/resources從. 我所要做的就是將以下行添加到我的文件中。src/test/resourcestarget\classes.classpath


<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">

    <attributes>

        <attribute name="maven.pomderived" value="true"/>

        <attribute name="test" value="true"/>

    </attributes>

</classpathentry>


查看完整回答
反對 回復 2023-03-23
  • 1 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號