当前位置: 首页 > 面试题库 >

如何在春季测试中设置环境变量或系统属性?

巫培
2023-03-14
问题内容

我想编写一些测试来检查已部署WAR的XML
Spring配置。不幸的是,某些bean需要设置一些环境变量或系统属性。通过@ContextConfiguration使用便捷的测试样式时,如何在初始化Spring
bean之前设置环境变量?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:whereever/context.xml")
public class TestWarSpringContext { ... }

如果我用注释配置应用程序上下文,那么在初始化spring上下文之前,我看不到钩子可以在其中做些事情。


问题答案:

您可以在静态初始化程序中初始化System属性:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:whereever/context.xml")
public class TestWarSpringContext {

    static {
        System.setProperty("myproperty", "foo");
    }

}

静态初始化程序代码将在spring应用程序上下文初始化之前执行。



 类似资料:
  • 我想编写一些测试,检查部署的WAR的XML Spring配置。不幸的是,有些bean需要设置一些环境变量或系统属性。在使用@ContextConfiguration的方便测试样式时,如何在spring bean初始化之前设置环境变量?

  • 我无法从环境变量中获取值。有很多类似的问题。但没有一个对我有用 应用程序.属性 系统变量 但当我硬编码时,它工作得很好。 更新

  • 问题内容: JVM中的系统属性System.getProperties()和环境变量System.getenv()有什么区别? 问题答案: 我认为两者之间的区别归结为访问。系统环境变量可以由任何进程访问,而Java系统属性只能由添加到它们的进程访问。 另外,正如Bohemian所说,env变量是在OS中设置的(但是可以通过Java设置),而系统属性则作为命令行选项传递或通过设置setPropert

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑

  • 问题内容: 如何从内部设置一些环境变量以与类似命令一起使用? 这是我目前所拥有的: 我想在启动脚本中设置环境变量(例如),同时仍然能够仅通过一个命令来启动应用程序。 问题答案: 在脚本命令中设置环境变量: 然后在您的应用中使用。 注意:确保它可以跨平台工作。如果只关心Mac / Linux,则可以忽略它。

  • 问题内容: 我已经开始在Django项目中工作,我想设置一些环境变量,而不必手动设置它们或将bash文件作为源。 我想设置以下变量: 我已经读过这篇文章,但这并不能解决我想要的问题。另外,我尝试在Preferences- > Build,Execution,Deployment- > Console- > Python Console / Django Console中设置环境变量,但是它设置了解