百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
D

doctrine-test-bundle

> 编程语言
开源

Symfony 组件可用于隔离应用程序的 doctrine 数据库测试,并提高测试性能

1.2K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

Symfony 组件可用于隔离应用程序的 doctrine 数据库测试,并提高测试性能

它做了什么呢? :blush:

借助 PHPUnit 扩展类,它会在每个测试用例之前开始事务,并在所有配置的 DBAL 连接的测试完成后再次回滚事务。这样做可以提高性能,因为无需在每个测试用例之前重建模式、导入备份 SQL 数据或重新插入固定数据。只要您避免发出可能导致隐式事务提交的 DDL 查询(如 ALTER TABLE、DROP TABLE 等;请参见 https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis),您的测试将被隔离,所有测试都将看到相同的数据库状态。

它还包括一个 Psr6StaticArrayCache,该缓存将自动配置为所有 EntityManagers 的元数据和查询缓存。这极大地提高了我的测试套件的速度和内存使用率!如果您有许多启动内核的测试(如控制器测试或 ContainerAware 测试),并使用 Doctrine 实体,这将是非常有益的。

php #[SkipDatabaseRollback] // 这将对类中的所有测试进行跳过 public class MyTest extends \PHPUnit\Framework\TestCase {} #[SkipDatabaseRollback] // 也支持在 (抽象) 父类中。因此,子类中的所有测试都会跳过回滚逻辑。 抽象类 MyAbstractTest 扩展 \PHPUnit\Framework\TestCase {} #[SkipDatabaseRollback] // 仅针对一个测试方法进行跳过 public function MyTest() {}

#### 使用 Bundle 与 Behat 结合
在 Behat 配置中启用扩展

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

PHPdoctrine2isolated-testsphpphpunit

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言