需要使用弹簧配置文件通过gradle运行测试。
gradle clean build
我添加了任务:
task beforeTest() {
doLast {
System.setProperty("spring.profiles.active", "DEV")
}
}
test.dependsOn beforeTest
我的测试定义是:
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("TestProfile")
public class SomeTest {
但这种结构并不适合我。
Gradle运行测试。
答案 0 :(得分:7)
我认为您想要在运行时/测试JVM中设置系统属性,但是您在构建时JVM(即Gradle守护程序)中错误地设置了系统属性。
请参阅Test.systemProperty(String, Object)
例如:
test {
systemProperty 'spring.profiles.active', 'DEV'
}
...还有另外一个关于你的尝试的说明。请注意,任务具有doFirst
和doLast
方法,因此您不需要为尝试的内容单独执行任务。
答案 1 :(得分:0)
想知道这是一个很晚的回复吗?但是我遇到了类似的情况。
所以最后我发现@Profile必须位于 src / main / * 文件夹中。 Gradle测试似乎优先于/ src / main而不是/ src / test。这样,我的@Profile(“ test”)被转换为@Profile(“!test”)。内置的gradle中没有添加spring.profiles.active。
答案 2 :(得分:-1)
这对我有用:
test {
doFirst {
systemProperty 'spring.profiles.active', 'ci'
}
}
现在当我gradlew test
时,它会使用ci
个人资料。