当我运行测试时,Spring Embedded Kafka失败

Tom*_*mek 7 spring-kafka

我有一个弹簧嵌入式kafka问题,我想用它来测试我的kafka发送器/接收器。

当我尝试使用以下方式运行测试时:

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
@DirtiesContext
public class myTestClass {

    @ClassRule
    public static EmbeddedKafkaRule embeddedKafka =
        new EmbeddedKafkaRule(1, true, RECEIVER_TOPIC);

    @Test public void test() {
        System.out.println("@Test");
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

java.io.IOException: Failed to load C:\Users\username\AppData\Local\Temp\kafka-8251150311475880576 during broker startup
...
15:29:33.135 [main] ERROR kafka.log.LogManager - Shutdown broker because none of the specified log dirs from C:\Users\username\AppData\Local\Temp\kafka-8251150311475880576 can be created or validated
Run Code Online (Sandbox Code Playgroud)

我确定作为用户我可以访问此目录,并且在运行测试时可以看到kafka在temp文件夹上创建了此类目录(空),但仍然无法正常工作。

这是我的pom配置:

    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka-test</artifactId>
        <version>2.2.0.RC1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
        <version>2.2.0.RC1</version>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

appliacation.properties:

kafka.bootstrap-servers= ${spring.embedded.kafka.brokers}
Run Code Online (Sandbox Code Playgroud)

有趣的是,我从互联网上克隆了一个用于测试目的的kafka嵌入式示例,它工作正常,但是当我将其应用于我的项目时,它却像上面那样崩溃了。

有什么建议我在做什么错?