Spring boot junit test无法获取命令行参数(Eclipse - STS)

时间:2016-05-28 14:51:00

标签: junit spring-boot command-line-arguments spring-tool-suite

我做了一个Spring Boot应用程序,并使用了一些命令行参数。我在

等服务中读到它们
@Value("${v}")
private String vertical;

应用程序有效并查看从命令行传递的值。我向所有JUnit测试运行配置添加了相同的命令行参数

  

- spring.profiles.active = development --m = keyword --v = Healthcare --i = keyword_update.json

jUnit run config

但是当我尝试运行测试时它崩溃了,这意味着应用程序上下文无法获得命令行属性:

  

2016-05-28 17:16:00.924 ERROR 4204 --- [主要]   o.s.boot.SpringApplicat ion:应用程序启动失败

     

org.springframework.beans.factory.BeanCreationException:错误   用名称'应用程序创建bean&#39 ;:注入自动装配   依赖失败;嵌套的例外是   org.springframework.beans.factory.BeanCreationException:不能   autowir e field:healthjobs.service.Catalog   healthjobs.app.Application.catalog;嵌套的e xception是   org.springframework.beans.factory.BeanCreationException:错误创建   名称' catalogImpl'注入自动连接的依赖项   失败;新的例外是   org.springframework.beans.factory.BeanCreationException:不能   autowire字段:healthjobs.service.CatalogPage   healthjobs.service.CatalogIm pl.catalogPage;嵌套异常是   org.springframework.beans.factory.BeanCreati onException:错误   创建名称为' catalogPageImpl':注入autow ired的bean   依赖失败;嵌套异常是   org.springframework.beans.factory。 BeanCreationException:不能   autowire字段:private java.lang.String health   jobs.service.CatalogPageImpl.vertical;嵌套异常是   java.lang.IllegalArgu mentException:无法解析占位符' v'   在字符串值" $ {v}"

为什么呢?如何在spring boot中使用命令行参数运行测试?

PS完整堆栈跟踪显示的时间太长,无法在此处附加。当我运行mvn包时,我得到了关于test的相同错误,但是mvn run config没有输入命令行参数的能力。我的环境:

  

Spring Tool Suite版本:3.7.2.RELEASE Build ID:201511261048   平台:Eclipse Mars.1(4.5.1)

0 个答案:

没有答案