我现在随便跑一个测试都是 7-10s, 哪怕是一个简单的 self.assertEqual(1,1)
也要这么久,因为创建数据库的表和插入数据耗时太长,有什么办法加速创建的吗?
我现在随便跑一个测试都是 7-10s, 哪怕是一个简单的 self.assertEqual(1,1)
也要这么久,因为创建数据库的表和插入数据耗时太长,有什么办法加速创建的吗?
|
linvauxJun 26, 2020
1
你可能对单元测试有啥误解
|
|
gwy15Jun 26, 2020 via Android
2
sqlite 内存数据库?
|
|
3
@gwy15 mysql
|
|
4
@linvaux 虽然真正的单元测试不带数据库,但是不带数据库我总感觉心里好慌,你也可以认为我的是集成测试吧
|
|
5
--reuse-db
|
|
loveJun 26, 2020
6
单元测试开始时开事务,结束后直接回滚会不会提速?
|
|
7
@love 这应该不行
|
|
8
@tinypig 这个是什么东西?
|
|
chinvoJun 26, 2020 via iPhone
9
一般单元测试到翻译出 SQL 语句为止,不实际执行的……
集成测试再做实际执行 |
|
draymonderJun 26, 2020
10
单元测试 直接 mock 执行 sql.
|
|
janxinJun 26, 2020
11
mock 掉数据库
|
|
jones2000Jun 26, 2020
12
单元测试 只要能覆盖所有的代码分支,执行速度都是其次的吧, 一般不都是半夜自动编译出版本然后跑一遍所有的单元测试,出测试报告,
|
|
huijieweiJun 26, 2020 via iPhone
13
单元测试不要牵扯基础设施层
|
|
nukJun 26, 2020
14
LOAD DATA LOCAL INFILE 快一点。。。吧
|
|
mawerss1Jun 26, 2020 via iPhone
15
分享一下我的解决办法,mock datasource,和数据库链接,然后产生一条 sql,手写出正确的 sql 去和正确的 sql 对比。
|
|
Kaiv2Jun 27, 2020 via Android
16
试试 h2 内存数据库
|
|
lzleeJun 27, 2020
17
可以 mock
可以用 h2 但是单元测试的初衷, 并不是把 db 也包含进去 |
|
18
|
|
BanxiaozhuanJun 27, 2020
19
难道不是 Mock 吗? 单元测试可能只关心内部状态不该关心数据库
|