Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在整个测试套件中加载bean一次_Java_Spring_Hibernate_Junit - Fatal编程技术网

Java 在整个测试套件中加载bean一次

Java 在整个测试套件中加载bean一次,java,spring,hibernate,junit,Java,Spring,Hibernate,Junit,我有一个描述会话工厂的bean。我只想在整个测试套件中加载这个bean一次。我想知道,这可能吗?如果可能的话,我想本地化到我的context.xml。我可以发布任何你想要的消息来源,只要问一下 提前谢谢 在Spring测试框架中,如果所有测试用例类都使用相同的位置属性,则在运行之间会保留上下文。在下面的示例中,context.xml中定义的上下文将只加载一次(在第一个测试用例之前),并在JVM退出时关闭: @ContextConfiguration(locations = "classpath:

我有一个描述会话工厂的bean。我只想在整个测试套件中加载这个bean一次。我想知道,这可能吗?如果可能的话,我想本地化到我的
context.xml
。我可以发布任何你想要的消息来源,只要问一下


提前谢谢

在Spring测试框架中,如果所有测试用例类都使用相同的
位置
属性,则在运行之间会保留上下文。在下面的示例中,
context.xml
中定义的上下文将只加载一次(在第一个测试用例之前),并在JVM退出时关闭:

@ContextConfiguration(locations = "classpath:context.xml")
@Transactional
public class FooTest {
  //...
}

@ContextConfiguration(locations = "classpath:context.xml")
@Transactional
public class BarTest {
  //...
}

您不能只保留一个bean,但可以一次加载整个上下文。请参阅我的文章。

在Spring测试框架中,如果所有测试用例类都使用相同的
位置
属性,则在运行之间会保留上下文。在下面的示例中,
context.xml
中定义的上下文将只加载一次(在第一个测试用例之前),并在JVM退出时关闭:

@ContextConfiguration(locations = "classpath:context.xml")
@Transactional
public class FooTest {
  //...
}

@ContextConfiguration(locations = "classpath:context.xml")
@Transactional
public class BarTest {
  //...
}

您不能只保留一个bean,但可以一次加载整个上下文。参见我的文章。

是的,我有这个部分。但是,即使上下文被保留,每个bean仍然会被加载。请原谅我的无知,但是如果每个bean仍然需要加载,那么保存上下文又有什么好处呢?@publ1c\u stat1c:bean在创建上下文时被加载。如果跨测试用例保留了上下文,那么在该上下文中创建的所有bean都将被重用。你确定你在遵循上面的模式吗?根据经验,我知道如果所有XML文件位置都相同,那么上下文(和所有bean)只加载一次。我看到
DEBUG DefaultListableBeanFactory |在我的所有测试用例上创建bean'sessionFactory'实例
。甚至使用这些注释。我总是看到
在名为'sessionFactory'的bean上调用destroy()
@publ1c\u stat1c:您是如何运行测试的?通过日食?专家确保它们都在一次JVM调用中运行(通过使用intelliJ的ant构建,使用
ThreadLocal
缓存上下文。是的,我有这一部分。但即使上下文被保留,每个bean仍然会被加载。请原谅我的无知,但是如果每个bean仍然需要加载,那么保存上下文又有什么好处?@publ1c_stat1c:bean在创建上下文时被加载。如果ntext是跨测试用例保留的,在该上下文中创建的所有bean都将被重用。您确定遵循上述模式吗?根据经验,如果所有XML文件位置都相同,则上下文(和所有bean)将被重新使用只加载了一次。我已经这样做了,但我的bean似乎仍在加载。我看到
调试DefaultListableBeanFactory |在我所有的测试用例上创建bean“sessionFactory”的实例
。即使使用这些注释。而且我总是看到
调用destroy()在名为“sessionFactory”的bean上
@publ1c\u stat1c:您如何运行测试?通过Eclipse?maven?确保它们都在一个JVM调用中运行(通过使用intelliJ的ant构建,使用
ThreadLocal
缓存上下文)。