我现在随便跑一个测试都是 7-10s, 哪怕是一个简单的 self.assertEqual(1,1)
也要这么久,因为创建数据库的表和插入数据耗时太长,有什么办法加速创建的吗?
1
linvaux 2020-06-26 16:47:06 +08:00
你可能对单元测试有啥误解
|
2
gwy15 2020-06-26 16:47:58 +08:00 via Android
sqlite 内存数据库?
|
5
tinypig 2020-06-26 17:11:28 +08:00 1
--reuse-db
|
6
love 2020-06-26 17:44:24 +08:00
单元测试开始时开事务,结束后直接回滚会不会提速?
|
9
chinvo 2020-06-26 17:51:21 +08:00 via iPhone
一般单元测试到翻译出 SQL 语句为止,不实际执行的……
集成测试再做实际执行 |
10
draymonder 2020-06-26 19:03:12 +08:00
单元测试 直接 mock 执行 sql.
|
11
janxin 2020-06-26 21:28:16 +08:00
mock 掉数据库
|
12
jones2000 2020-06-26 22:25:46 +08:00
单元测试 只要能覆盖所有的代码分支,执行速度都是其次的吧, 一般不都是半夜自动编译出版本然后跑一遍所有的单元测试,出测试报告,
|
13
huijiewei 2020-06-26 23:13:18 +08:00 via iPhone
单元测试不要牵扯基础设施层
|
14
nuk 2020-06-26 23:19:27 +08:00
LOAD DATA LOCAL INFILE 快一点。。。吧
|
15
mawerss1 2020-06-26 23:52:26 +08:00 via iPhone
分享一下我的解决办法,mock datasource,和数据库链接,然后产生一条 sql,手写出正确的 sql 去和正确的 sql 对比。
|
16
Kaiv2 2020-06-27 08:21:09 +08:00 via Android
试试 h2 内存数据库
|
17
lzlee 2020-06-27 12:13:43 +08:00
可以 mock
可以用 h2 但是单元测试的初衷, 并不是把 db 也包含进去 |
19
Banxiaozhuan 2020-06-27 17:20:36 +08:00
难道不是 Mock 吗? 单元测试可能只关心内部状态不该关心数据库
|