gpt4 book ai didi

java - JUnit 测试不使用 SpringJUnit4ClassRunner 回滚

转载 作者:行者123 更新时间:2023-11-28 23:38:31 25 4
gpt4 key购买 nike

从正确的角度来看,一切正常,直到我不得不格式化我的工作站。在我设法让项目运行后,我运行了 JUnit 测试,但我的大部分测试都失败了。问题是因为数据库没有回滚。也许我错过了一些配置,也许是在 mysql 上。

所以,这些是我的配置/源文件:

JUnit 类声明:

@ContextConfiguration(locations = { "classpath*:testApplicationContext.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional
public class ClientServiceTest {

测试范围的applicationContext:

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
<property name="defaultAutoCommit" value="false" />

</bean>

最佳答案

检查您对应用程序表使用的引擎。 MyISAM 不支持事务。你应该使用 InnoDB。

要检查引擎,使用查询:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'your_database_name'

关于java - JUnit 测试不使用 SpringJUnit4ClassRunner 回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com