Add support for new test infrastructure

Spring Boot `1.4.0.M2` brings a new test infrastructure with nice
defaults and deprecates `SpringBootConfiguration` in the process.

This commits automatically upgrades generated project to this new
infrastructure if Spring Boot `1.4.0.M2` or later is available.

Closes gh-215
This commit is contained in:
Stephane Nicoll
2016-04-08 18:24:50 +02:00
parent 046e39f232
commit 658475ad4f
12 changed files with 191 additions and 20 deletions

View File

@@ -16,6 +16,7 @@
package io.spring.initializr.generator
import io.spring.initializr.metadata.Dependency
import io.spring.initializr.metadata.InitializrMetadata
import io.spring.initializr.metadata.SimpleInitializrMetadataProvider
import io.spring.initializr.test.generator.GradleBuildAssert
@@ -49,8 +50,11 @@ abstract class AbstractProjectGeneratorTests {
@Before
void setup() {
def web = new Dependency(id: 'web')
web.facets << 'web'
def metadata = InitializrMetadataTestBuilder.withDefaults()
.addDependencyGroup('test', 'web', 'security', 'data-jpa', 'aop', 'batch', 'integration').build()
.addDependencyGroup('web', web)
.addDependencyGroup('test', 'security', 'data-jpa', 'aop', 'batch', 'integration').build()
applyMetadata(metadata)
projectGenerator.eventPublisher = eventPublisher
projectGenerator.tmpdir = folder.newFolder().absolutePath

View File

@@ -89,6 +89,16 @@ class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests {
.equalsTo(new ClassPathResource("project/$language/standard/DemoApplicationTests.$expectedExtension"))
}
@Test
public void standardTestClassWeb() {
def request = createProjectRequest('web')
request.language = language
def project = generateProject(request)
project.sourceCodeAssert("src/test/$language/com/example/DemoApplicationTests.$extension")
.equalsTo(new ClassPathResource("project/$language/standard/DemoApplicationTestsWeb.$expectedExtension"))
}
@Test
public void standardServletInitializer() {
def request = createProjectRequest()
@@ -99,4 +109,26 @@ class ProjectGeneratorLanguageTests extends AbstractProjectGeneratorTests {
.equalsTo(new ClassPathResource("project/$language/standard/ServletInitializer.$expectedExtension"))
}
@Test
public void test14TestClass() {
def request = createProjectRequest()
request.language = language
request.bootVersion = '1.4.0.M2'
def project = generateProject(request)
project.sourceCodeAssert("src/test/$language/com/example/DemoApplicationTests.$extension")
.equalsTo(new ClassPathResource("project/$language/test-1.4/DemoApplicationTests.$expectedExtension"))
}
@Test
public void test14TestClassWeb() {
def request = createProjectRequest('web')
request.language = language
request.bootVersion = '1.4.0.M2'
def project = generateProject(request)
project.sourceCodeAssert("src/test/$language/com/example/DemoApplicationTests.$extension")
.equalsTo(new ClassPathResource("project/$language/test-1.4/DemoApplicationTests.$expectedExtension"))
}
}

View File

@@ -0,0 +1,18 @@
package com.example
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.SpringApplicationConfiguration
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
import org.springframework.test.context.web.WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner)
@SpringApplicationConfiguration(classes = DemoApplication)
@WebAppConfiguration
class DemoApplicationTests {
@Test
void contextLoads() {
}
}

View File

@@ -0,0 +1,16 @@
package com.example
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner
@RunWith(SpringRunner)
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
}

View File

@@ -0,0 +1,18 @@
package com.example;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DemoApplication.class)
@WebAppConfiguration
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@@ -0,0 +1,16 @@
package com.example;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@@ -0,0 +1,18 @@
package com.example
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.SpringApplicationConfiguration
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
import org.springframework.test.context.web.WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner::class)
@SpringApplicationConfiguration(classes = arrayOf(DemoApplication::class))
@WebAppConfiguration
class DemoApplicationTests {
@Test
fun contextLoads() {
}
}

View File

@@ -0,0 +1,16 @@
package com.example
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner
@RunWith(SpringRunner::class)
@SpringBootTest
class DemoApplicationTests {
@Test
fun contextLoads() {
}
}