在以前版本的Idea中,如果我检查了“开发”或“生产”Maven配置文件,每当我运行单元测试时,IntelliJ IDEA实际上并没有使用这些配置文件.相反,它没有使用它们中的任何一个.
由于我正在开发基于Spring的应用程序,因此我使用3个配置文件来配置各种内容,但主要是我的applicationContext.xml.每当不使用配置文件时,由于属性语法相同,当Maven配置文件未用于替换应用程序上下文中的值时,Spring将方便地回退到applicationContext.properties.
但是对于较新版本的IntelliJ,这种后备机制不再发生.如果在IntelliJ IDEA的Maven选项卡下检查’production’,那么只要我运行单元测试,IDEA就会实际使用该配置文件.这意味着在我运行单元测试之前,我必须始终确保清理项目并检查我选择的Maven配置文件,当我需要在“test”和“test”之间来回切换时,这会增加很多开销. “开发”……并且上帝禁止我的dbunit测试开始覆盖“开发”数据库,因为实际上选择了错误的配置文件!
现在,我是一个非常懒惰的开发人员.我喜欢我的IDE足够聪明,每当我运行单元测试时总是使用“测试”配置文件,即使选择了“生产”或“开发”.我如何告诉IntelliJ IDEA这样做?它曾经在旧版本的IDEA中做到这一点,我希望得到相同的行为 – 它适用于我.
解决方法
在默认测试配置中(对我来说是junit),您可以设置环境变量,例如RUNNING_TESTS = true.然后,您可以在存在该变量时自动激活测试配置文件(在
sonatype maven doc page上有对该参数的引用).