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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 Junit 5 使用 Testcontainer 對(duì) Kafka 運(yùn)行集成測(cè)試

如何使用 Junit 5 使用 Testcontainer 對(duì) Kafka 運(yùn)行集成測(cè)試

瀟瀟雨雨 2023-06-08 19:17:30
我正在嘗試為我的 Kafka 消費(fèi)者編寫(xiě)集成測(cè)試。我正在使用JUnit 5,所以我無(wú)法使用 對(duì)其進(jìn)行初始化@Rule,而且我看到的初始化示例@Container也無(wú)法正常工作。我試圖將我的 Junit 版本更改為Junit 4,但它損壞了我的其他測(cè)試(所以我需要繼續(xù)使用Junit 5)。但它不識(shí)別我的注釋 (?@Testcontainers,?@Container)。搖籃進(jìn)口:testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0'testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.4.0'implementation group: 'org.apache.kafka', name: 'kafka-clients', version: '1.1.1'testIntegrationImplementation "org.testcontainers:kafka:1.11.4"我正在上傳此代碼作為注釋?zhuān)篅Testcontainerspublic class KafkaTestContainer implements BeforeAllCallback, AfterAllCallback {? ? @Container? ? public KafkaContainer kafkaContainer = new KafkaContainer();? ? private static final Logger logger = LoggerFactory.getLogger(KafkaTestContainer.class);? ? @Inject? ? private KafkaTestContainer() {? ? ? ? try {? ? ? ? } catch (Exception e) {? ? ? ? ? ? logger.error(e.getMessage());? ? ? ? }? ? }? ? private String getKafkaBootstrapServers(Request request) throws IOException {? ? ? ? return this.kafkaContainer.getBootstrapServers();? ? }? ? public void stopKafkaTestContainer() {? ? ? ? // Stop the container.? ? ? ? kafkaContainer.stop();? ? }? ? @Override? ? public void afterAll(ExtensionContext context) throws Exception {? ? }? ? @Override? ? public void beforeAll(ExtensionContext context) throws Exception {? ? ? ? boolean isKafkaRunning = this.kafkaContainer.isRunning();? ? ? ? if(isKafkaRunning) {? ? ? ? ? ? logger.info("start Kafka docker!!");? ? ? ? }? ? }isKafkaRunning 值始終為 false。對(duì) Kafka 測(cè)試容器初始化有任何幫助嗎?我錯(cuò)過(guò)了什么??
查看完整描述

3 回答

?
蠱毒傳說(shuō)

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

以下是對(duì)我有用的設(shè)置:


...

<properties>

        <java.version>1.8</java.version>

        <testcontainers.version>1.14.3</testcontainers.version>

        <junit.jupiter.version>5.6.2</junit.jupiter.version>

        <lettuce.version>5.3.3.RELEASE</lettuce.version>

        <lombok.version>1.18.12</lombok.version>

    </properties>


    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-redis</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-messaging</artifactId>

        </dependency>

        <dependency>

            <groupId>io.lettuce</groupId>

            <artifactId>lettuce-core</artifactId>

            <version>${lettuce.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.kafka</groupId>

            <artifactId>spring-kafka</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

            <scope>runtime</scope>

            <optional>true</optional>

        </dependency>

        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <version>${lombok.version}</version>

            <optional>true</optional>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

            <exclusions>

                <exclusion>

                    <groupId>org.junit.vintage</groupId>

                    <artifactId>junit-vintage-engine</artifactId>

                </exclusion>

            </exclusions>

        </dependency>

        <dependency>

            <groupId>org.springframework.kafka</groupId>

            <artifactId>spring-kafka-test</artifactId>

            <scope>test</scope>

        </dependency>


        <!-- JUnit 5 dependencies -->

        <dependency>

            <groupId>org.junit.jupiter</groupId>

            <artifactId>junit-jupiter-api</artifactId>

            <version>${junit.jupiter.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.junit.jupiter</groupId>

            <artifactId>junit-jupiter-params</artifactId>

            <version>${junit.jupiter.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.junit.jupiter</groupId>

            <artifactId>junit-jupiter-engine</artifactId>

            <version>${junit.jupiter.version}</version>

            <scope>test</scope>

        </dependency>


        <!-- Testcontainers dependencies -->

        <dependency>

            <groupId>org.testcontainers</groupId>

            <artifactId>testcontainers</artifactId>

            <version>${testcontainers.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.testcontainers</groupId>

            <artifactId>junit-jupiter</artifactId>

            <version>${testcontainers.version}</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.testcontainers</groupId>

            <artifactId>kafka</artifactId>

            <version>${testcontainers.version}</version>

            <scope>test</scope>

        </dependency>

    </dependencies>

測(cè)試類(lèi)示例:


@SpringBootTest

@Testcontainers

class KafkaProducerTest {


    @Container

    public KafkaContainer container = new KafkaContainer();


    @Test

    void sendMessage() {

        assertTrue(container.isRunning());

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-06-08
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

您缺少以下依賴(lài)項(xiàng):


<dependency>

    <groupId>org.testcontainers</groupId>

    <artifactId>junit-jupiter</artifactId>

    <version>1.13.0</version>

    <scope>test</scope>

</dependency>


查看完整回答
反對(duì) 回復(fù) 2023-06-08
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

當(dāng)然有更復(fù)雜的方法可以做到這一點(diǎn),但我認(rèn)為你只需要:


    @Override

    public void beforeAll(ExtensionContext context) throws Exception {

        while(!this.kafkaContainer.isRunning());

        logger.info("start Kafka docker!!");

    }

如果可行,您應(yīng)該添加一個(gè)真正的異步框架,并實(shí)施更成熟的重試和超時(shí)。


查看完整回答
反對(duì) 回復(fù) 2023-06-08
  • 3 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)