在开发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);
}
...
据此,我了解作者明确禁用了对测试的支持。谁能解释一下?