Spring Boot-以交互模式运行集成测试

时间:2019-05-15 22:42:05

标签: java spring spring-boot hotswap spring-boot-devtools

在开发Web应用程序时,SpringBoot开发工具模块非常有助于加快编译和运行循环。但是,我找不到用于集成测试的任何类似功能。

更具体地说,假设我有一个集成测试(用@RunWith(SpringRunner.class)@SpringBootTest注释),它在随机端口上启动Web服务器并测试一些REST端点。我想要一个交互式测试运行程序,当一个测试用例失败时,它不会终止该过程。相反,它将等待代码中的更改,并在检测到更改时重新加载并重新运行测试(就像开发工具中的热交换一样)

我对该功能的搜索未成功,因此我想知道什么是实现此功能最快的方法。考虑到Springs的受欢迎程度,为什么没有众所周知的方法呢?

编辑

深入研究源代码,我发现了以下代码。

/**
 * Default {@link RestartInitializer} that only enable initial restart when running a
 * standard "main" method. Skips initialization when running "fat" jars (included
 * exploded) or when running from a test.
 *
 * @author Phillip Webb
 * @author Andy Wilkinson
 * @since 1.3.0
 */
public class DefaultRestartInitializer implements RestartInitializer {

    private static final Set<String> SKIPPED_STACK_ELEMENTS;

    static {
        Set<String> skipped = new LinkedHashSet<>();
        skipped.add("org.junit.runners.");
        skipped.add("org.junit.platform.");
        skipped.add("org.springframework.boot.test.");
        skipped.add("cucumber.runtime.");
        SKIPPED_STACK_ELEMENTS = Collections.unmodifiableSet(skipped);
    }
    ...

据此,我了解作者明确禁用了对测试的支持。谁能解释一下?

0 个答案:

没有答案