From 80940764f68c006817b4ed6ff7fc8e88d6641432 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 21 Sep 2015 16:22:47 +0100 Subject: [PATCH] Do not trigger a restart when a test class is changed Previously, dev tools would restart the application when any .class file changed. This included test classes. This commit updates the default excludes to ignore any classes with a name that ends in Test.class or Tests.class. Closes gh-3900 --- .../boot/devtools/autoconfigure/DevToolsProperties.java | 3 ++- .../classpath/PatternClassPathRestartStrategyTests.java | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/DevToolsProperties.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/DevToolsProperties.java index 8bf33b7e7c4..112627afe5d 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/DevToolsProperties.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/DevToolsProperties.java @@ -59,7 +59,8 @@ public class DevToolsProperties { public static class Restart { private static final String DEFAULT_RESTART_EXCLUDES = "META-INF/maven/**," - + "META-INF/resources/**,resources/**,static/**,public/**,templates/**"; + + "META-INF/resources/**,resources/**,static/**,public/**,templates/**," + + "**/*Test.class,**/*Tests.class"; private static final long DEFAULT_RESTART_POLL_INTERVAL = 1000; diff --git a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/classpath/PatternClassPathRestartStrategyTests.java b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/classpath/PatternClassPathRestartStrategyTests.java index 3617c2ea524..a9c308d4a45 100644 --- a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/classpath/PatternClassPathRestartStrategyTests.java +++ b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/classpath/PatternClassPathRestartStrategyTests.java @@ -74,6 +74,14 @@ public class PatternClassPathRestartStrategyTests { assertRestartRequired(strategy, mavenFolder + "/pom.properties", false); } + @Test + public void testChange() { + ClassPathRestartStrategy strategy = createStrategy("**/*Test.class,**/*Tests.class"); + assertRestartRequired(strategy, "com/example/ExampleTests.class", false); + assertRestartRequired(strategy, "com/example/ExampleTest.class", false); + assertRestartRequired(strategy, "com/example/Example.class", true); + } + private ClassPathRestartStrategy createStrategy(String pattern) { return new PatternClassPathRestartStrategy(pattern); }