Java 如何为不同的环境运行JUnit 5测试套件[micronaut 1.2.5]?

Java 如何为不同的环境运行JUnit 5测试套件[micronaut 1.2.5]?,java,junit5,micronaut,Java,Junit5,Micronaut,我有3种不同类型的环境:本地、暂存和集成。每个环境(application-local.yml、application-staging.yml、application integration.yml)都有自己的属性,例如代理 对于每个环境,我创建了不同的包:com.myapp.local;com.myapp.staging;com.myapp.integration.。每个包中都有不同的测试 然后,如何在micronaut中编写测试套件,其中一个套件针对一个包和一个特定环境运行 例如:测试套件1

我有3种不同类型的环境:本地、暂存和集成。每个环境(application-local.yml、application-staging.yml、application integration.yml)都有自己的属性,例如代理

对于每个环境,我创建了不同的包:com.myapp.local;com.myapp.staging;com.myapp.integration.。每个包中都有不同的测试

然后,如何在micronaut中编写测试套件,其中一个套件针对一个包和一个特定环境运行

例如:测试套件1在包com.myapp.local和环境local

然后,我如何在micronaut中编写一个测试套件,在micronaut中,一个套件可以为 一个包和一个特定环境

这取决于一些您没有描述的因素,但有一点是,如果您只想为某个包运行测试,如果您使用的是Gradle,您可以执行类似的操作

./gradlew test --tests com.myapp.local.*

要激活不同的配置文件,可以使用环境变量
MICRONAUT_环境
并将其设置为您的配置文件

我猜你有不同的测试任务。您可以通过gradle by设置任何变量

systemProperty "micronaut.environments", "local"

如果你想走得更远,你可以

includeTestsMatching "com.myapp.local.*"

通常,将单元测试设计为特定于环境的不是一个好主意。通常你会有一套与环境无关的测试;他们应该在任何环境中通过。但这里我涉及到一些代理。集成测试需要一个不同的代理,就像开发人员在机器上测试它一样。你考虑过使用Wiremock吗?它允许您通过为每个测试用例的查询预定义响应来消除代理。