zoukankan      html  css  js  c++  java
  • Maven 使用Profile和Resources Filter隔离测试环境

    Maven能够帮我们很好的管理测试,我们可以在 src/test/java 和 src/test/resources 下面使用JUnit或者TestNG 编写单元测试和集成测试,然后在命令行运行 mvn test ,

    当我们的项目开发人员很多的时候,那么问题来了,如何进行测试环境隔离呢,比如dataSource的配置  ,有些配置本地的数据库,而有些配置测试环境或生产环境的,频繁的签入签出很困扰,

    maven使用Profile和Resources Filter隔离测试环境可以解决此问题,以下是解决方案:

    首先在maven的安装目录下的settings.xml

    <profile>
    <id>mySqlProfile</id>
    <properties>
    <mysql.url>jdbc:mysql://localhost:3306</mysql.url>
    <mysql.username>test</mysql.username>
    <mysql.password>test</mysql.password>
    <mysql.dbname>test</mysql.dbname>
    </properties>
    </profile>

    <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>mySqlProfile</activeProfile>
    </activeProfiles>

    然后配置SpringHibernate.xml

    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
    </property>
    <property name="url"
    value="jdbc:mysql://${mysql.url}/${mysql.dbname}?autoReconnect=true&amp;autoReconnectForPools=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;mysqlEncoding=utf-8">
    </property>
    <property name="username" value="${mysql.username}"></property>
    <property name="password" value="${mysql.password}"></property>
    <property name="maxActive" value="100"></property>
    <property name="maxIdle" value="50"></property>
    <property name="maxWait" value="10000"></property>
    <!--1 hours-->
    <property name="timeBetweenEvictionRunsMillis" value="3600000"></property>
    <!--<property name="minEvictableIdleTimeMillis" value="20000"></property>-->
    <property name="testWhileIdle" value="true"></property>
    <property name="validationQuery" value="select 1 from dual"></property>
    </bean>

    最后,不要忘了配置 Maven Resources 插件让它开启 filtering 功能:

    在你要发布的web项目的pom.xml里

    <resources>
    <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    </resource>
    </resources>

    至此,我们已经把环境相关的变量隔离开了,每个用户都有自己的settings.xml 文件,所以每个人都能配置自己的settings.xml 来使用他想要使用的数据库。

    项目发布后maven会自动更新SpringHibernate.xml里配置的值
    这种解决方案不仅仅适用于数据库,任何外部环境配置都可以使用该方案,如对消息服务器的依赖等。

  • 相关阅读:
    2017-3-31 操作属性 定时器 操作内容 操作相关元素 元素创建添加删除
    2017-3-30 Js实现导航栏,选项卡,图片轮播的制作
    2017-3-30 DOM查找元素 点击,鼠标移入,移除事件 样式控制
    Js产生随机数的几种方法
    2017-3-29 Js语法 DOM操作
    纯【css下拉菜单】
    2017-3-25 css样式表 去除按钮点点击是的绿色边框
    2017-3-23 网页中的表单 框架 标题栏小图标 描点 插入视频音频 简单的滚动条 css样式表
    【2017-2-21】C#分支语句,分支嵌套,变量的作用域
    【2017-2-20】C#运算符
  • 原文地址:https://www.cnblogs.com/xiaofeilee/p/4126242.html
Copyright © 2011-2022 走看看