展开讨论

经验与复盘经验摘录 · 机器翻译

运行CI的总时间增加了大约10秒

… 运行CI的总时间增加了大约10秒。(对于本地开发,你可以通过每次测试运行时不启动新的服务器实例来大幅减少这个时间。)考虑到我们为诊断、解决和清理这个第一个缺陷所花费的人员工时,我估计名义上较慢的非模拟测试在不到大约50,000次CI运行的情况下仍然是时间上的节省,即使在这种情况下,我们可能只应计算那些工程师实际因等待测试完成而受阻的情况。不过,曾有一段时间我认为数据库的测试桩是最实际的选择,因为在保持测试隔离的情况下对真实数据库进行测试是一件非常麻烦的事情。但那是5到6年前的事了,那时我还没有真正学会如何正确使用Docker。

源讨论如何在不模拟的情况下进行测试原帖 218 条评论 · 导入时统计
2

这条内容在回应什么?

父级讨论 · 节选

ST

.NET ORM EntityFramework的一个优点是,你可以用依赖注入将模拟的内存数据库替换为生产数据库,而无需修改代码,理论上也不会影响ORM的行为。也就是说,你是对的,这关乎使用正确的工具。当然,这些工具因生态系统而异,所以在某些情况下,模拟数据库确实是正确的决定。

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

ST

我真心觉得我永远无法想出像微软现有的测试覆盖率那样全面的测试,以确保他们的ORM在不同数据库提供者中行为一致。在我超过10年使用EF的时间里,我从未遇到过你描述的那种数据库错误。如果我发现了这样的错误(尽管我承认偶尔会发生,但目前还没遇到过),那与其重新构建我自己的测试基础设施,不如更容易且更有效地向EF团队提交一个issue,让他们来解决(包括适当的测试)。我不从事数据库相关的需求或代码开发,为我认为数据库的基本需求构建一个复杂的测试模型,会分散我开发对业务更有价值的代码的注意力。 同样的逻辑也适用于...…

完整原文
NI

使用内存数据库并没有增加我对软件的信心。我几年前也开始在测试中使用docker化的依赖项。 你能解释一下你用了什么RAM磁盘来加速它们吗?

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。