企业网站开发上海韵茵,视频号分销解决方案的特点,新网站建设 英文翻译,建设网站的主要功能有哪些Maven能够帮我们很好的管理测试#xff0c;我们可以在src/test/java和 src/test/resources下面使用JUnit或者TestNG 编写单元测试和集成测试#xff0c;然后在命令行运行 mvn test#xff0c;测试就会自动运行#xff0c;同时产生详细的测试报告。对只有一两个人的项目来说…Maven能够帮我们很好的管理测试我们可以在src/test/java和 src/test/resources下面使用JUnit或者TestNG 编写单元测试和集成测试然后在命令行运行 mvn test测试就会自动运行同时产生详细的测试报告。对只有一两个人的项目来说不会碰到本文将提到的问题。我们考虑以下场景(这也是我在实际项目中碰到的问题)有一个大概30人团队的项目其中一半在美国另一半在中国要知道两个地方的网络连接速度不是很快也就是说从地球的一端连接地球另一端的数据库十分耗时。中国的团队开发了一些模块也很积极的编写了大量单元测试和集成测试(我这里说的单元测试使指不对外部任何环境有依赖)这些代码完全由Maven管理所以在中国团队这里持续集成服务器上只有简单的一条 mvn clean install命令一切都很好但是当美国团队签出同样的源代码运行同样的命令时问题出现了测试在他们那里总是过不去经过检查发现代码中有太多的硬编码的数据库链接以及其它的对外部环境的依赖。于是他们抱怨How can you hardcode database link? 中国的同事很委屈我们已经从代码里把这些东西抽取到配置文件里了这不算Hardcode吧。大家暂时没办法于是只能在build命令后加上-Dtest -DfailIfNoTestsbuild可以过了但是美国团队心里总是不舒服尤其是当他们代码把测试弄坏时他们经常不知道。问题总是要解决的更何况现在的问题也不小。让我们看看Maven为我们提供了什么大家首先会想到的肯定是Profile通过Profile我们可以通过Maven传入一些个性化变量。考虑一下我们的情况下什么需要个性化也就是说什么东西在不同的地方值是不一样的答案是src/test/resources下的一些资源文件如JPA用到的 persistence.xml其中包含了这样的内容我们看到这个资源文件绑定到了本机的mysql数据库上我们需要从Maven传入这些参数包括url, username和password。可问题是通过Profile传输的个性化变量我们能在pom.xml里面引用我们如何在src/test /resources下的资源文件里引用它们呢先别急先让我们把Profile定义好这里我选择在%M2_HOME%/conf下的settings.xml里定义全局的Profile因为数据库链接是很多模块的测试都会用到的定义如下myProfilejdbc:mysql://localhost:3306testtesttestmyProfile此外修改资源文件如下至此我们已经把环境相关的变量隔离开了每个用户都有自己的settings.xml文件所以每个人都能配置自己的settings.xml来使用他想要使用的数据库。针对我们上面的场景美国的团队只要在本地配置一个数据库他们也就可以运行测试了皆大欢喜最后不要忘了配置 Maven Resources 插件让它开启 filtering 功能[...]src/test/resourcestrue[...]至此运行 mvn installMaven 会让 Resources 插件首先根据 setttings.xml文件中的值填充测试资源文件中的变量然后再运行测试。这种解决方案不仅仅适用于数据库任何外部环境配置都可以使用该方案如对消息服务器的依赖。尽情享受Maven给你带来的便利吧分享到 2008-06-22 12:46浏览 10483评论谢谢分享5 楼axlfu2010-08-05hi我用filter做配置替换设置了filter的文件编码采用GB18030但替换后的文件有些乱码(大部分是正确的)导致应用无法启动源文件替换后请教下该如何解决4 楼juvenshun2008-11-03imcaptor 写道我的问题settings里面大小写有问题。activeProfiles activeProfiledevelopment/activeProfile activeprofilesqlProfile/activeprofile /activeProfiles应该是activeProfiles activeProfiledevelopment/activeProfile activeProfilesqlProfile/activeProfile /activeProfiles我用mvn help:active-profiles看了一下有效的profile。sorry, 大小写问题已修复3 楼imcaptor2008-11-02我的问题settings里面大小写有问题。developmentsqlProfile应该是developmentsqlProfile我用mvn help:active-profiles看了一下有效的profile。2 楼imcaptor2008-11-02我试了好像不管用啊settings.xml设置了但是没有起作用。1 楼lovefly_zero2008-08-05很好的东西 收藏了