运行“mvn test”时设置“test”配置文件

我使用 Spring 将@Profile与测试相关的类与开发和产品分开。我在寻找一种在 pom.xml 中设置spring.profiles.activeto的方法时遇到了麻烦,仅出于目标。换句话说,如果 Maven 目标是我想运行这个:testtesttest

mvn test

仍然可以访问带有 @Profile("test") 注释的类,
而不是这样:

mvn test -Dspring.profiles.active=test

因为它指定了运行两次的“测试”性质。

有可能吗?

更新:添加代码

以下两项服务用于测试和开发/生产。两者都实现相同的接口 MyService

MyService测试环境:

@Service

@Profile("test")

@ActiveProfiles("test")

public class TestMyServiceImpl implements MyService {

    @Override

  public String myMethod(){

    ...

    }

}

MyService 开发环境:


@Service

public 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;

  }

}


梵蒂冈之花
浏览 158回答 1
1回答

人到中年有点甜

您可以使用注释通过测试配置文件运行测试类,请按照以下步骤操作第 1 步:@Profile("name")用和注释所有测试类@ActiveProfiles("name")Profile注释用于拾取指定的配置文件ActiveProfiles用于激活测试类的指定配置文件第 2 步:创建application.properties或application.yml使用配置文件名称(如application-test.yml)并将其放置在src/main/resources或src/test/resources与测试属性一起放置
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java