Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 升级到Spring3和JUnit11-运行测试后上下文变为null。没有可用于第二个测试的自动连线bean_Java_Spring_Spring Test - Fatal编程技术网

Java 升级到Spring3和JUnit11-运行测试后上下文变为null。没有可用于第二个测试的自动连线bean

Java 升级到Spring3和JUnit11-运行测试后上下文变为null。没有可用于第二个测试的自动连线bean,java,spring,spring-test,Java,Spring,Spring Test,我有个奇怪的问题。在升级到Spring3和JUnit11之后,测试没有按预期工作 当我从intellij单独运行测试时,一切都正常。然而,在运行maven时,自动布线测试失败。这也是不一致的。测试类运行中的第一个测试获取自动连线类并运行,但下一个测试失败,自动连线bean上出现空指针异常 以下是测试类: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:dao-expor

我有个奇怪的问题。在升级到Spring3和JUnit11之后,测试没有按预期工作

当我从intellij单独运行测试时,一切都正常。然而,在运行maven时,自动布线测试失败。这也是不一致的。测试类运行中的第一个测试获取自动连线类并运行,但下一个测试失败,自动连线bean上出现空指针异常

以下是测试类:

 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations = {"classpath:dao-export-test.xml", "classpath:jndidatasource-config.xml"})
 @TransactionConfiguration(transactionManager = "transactionManager.console", defaultRollback = true)
 @TestExecutionListeners({
    DependencyInjectionTestExecutionListener.class,
    DirtiesContextTestExecutionListener.class,
    TransactionalTestExecutionListener.class
 })
@Transactional
public class ActivityLogDaoTest  {
private final Logger logger = Logger.getLogger(getClass());
ActivityLog activityLog;

@Autowired
private ActivityLogDao activityLogDao;
private static final String CUSTOMER_KEY = "king-kong-systems";

@Before
public void setUp() {
    activityLog = new ActivityLog();
    activityLog.setReferenceId(2000L);
    activityLog.setAmount(BigDecimal.TEN);
    activityLog.setCustomerKey(CUSTOMER_KEY);
    activityLog.setSource(ActivityLogSource.BALANCE_LINE_ITEM);
    activityLog.setType(ActivityType.UNKNOWN);
    activityLog.setDescription("Initial purchase for server blades at rackspace");
}


@Test
public void testAddNewLogRecord() {
    logger.info("Adding new record to activity log");
    try {
        activityLogDao.createLogEntry(activityLog);
        Assert.assertTrue(true);
    } catch (Exception e) {
        Assert.assertTrue(false);
    }
}

@Test
public void testGetLogsForMerchant() {
    logger.info("Get new record for merchant");
    //add two records
}

xml配置包括:

 <context:spring-configured/>    
 <context:annotation-config/>

<bean id="activityLogDao" class="com.core.dao.hibernate.ActivityLogDaoImpl" parent="baseDao.console">
    <property name="databaseToUse" value="SNAPSHOT"/>
</bean>

调试变得越来越困难,因为测试通过intellj,当我在测试类中只有一个测试时通过;但当我进行另一次测试时,自动布线失败了。这可能与@Transactional有关吗

在进一步调试时,我发现在运行一个测试之后,上下文丢失了,在下一个测试的安装过程中,上下文以null的形式出现。我不知道为什么会发生这种情况


请帮忙

这个问题似乎发生在并行运行maven测试时。这在春季2.5.6中没有发生。然而,在删除maven test surefire插件中的并行方法之后,我没有面临这个问题