我使用 Spring 将@Profile与测试相关的类与开发和产品分开。我在寻找一种在 pom.xml 中设置spring.profiles.activeto的方法时遇到了麻烦,仅出于目标。换句话说,如果 Maven 目标是我想运行这个:testtesttestmvn test仍然可以访问带有 @Profile("test") 注释的类,而不是这样:mvn test -Dspring.profiles.active=test因为它指定了运行两次的“测试”性质。有可能吗?更新:添加代码以下两项服务用于测试和开发/生产。两者都实现相同的接口 MyServiceMyService测试环境:@Service@Profile("test")@ActiveProfiles("test")public class TestMyServiceImpl implements MyService { @Override public String myMethod(){ ... }}MyService 开发环境:@Servicepublic class DevMyServiceImpl implements MyService { @Override public String myMethod(){ ... }}自动装配 MyService 的控制器:@RestController@RequestMapping public class MyController { @Autowired private MyService myService;@RequestMapping(value = /myendpoint, method = RequestMethod.POST) public @ResponseBody Response foo(@RequestBody String request) { Response response = new Response(); response.setResult(myService.myMethod()); return response; }}
1 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
您可以使用注释通过测试配置文件运行测试类,请按照以下步骤操作
第 1 步:@Profile("name")
用和注释所有测试类@ActiveProfiles("name")
Profile
注释用于拾取指定的配置文件ActiveProfiles
用于激活测试类的指定配置文件
第 2 步:创建application.properties
或application.yml
使用配置文件名称(如application-test.yml)并将其放置在src/main/resources
或src/test/resources
与测试属性一起放置
添加回答
举报
0/150
提交
取消