提交的 patch , 直接强制的检查单侧覆盖跟行的修改比例,不达标直接 CI -1 。
以前的代码都没有单侧。
蛋疼了,不敢提交 patch 了,打击面太广。
1
documentzhangx66 2022-05-07 02:16:04 +08:00 6
1.Python 语言属于弱类型,本来就极容易写出不严谨、不稳定的代码,因为这个问题,本身也不适合大项目。如果谁用 Python 去做大项目,也是语言选型失败的表现。
2.要求大幅度提高单元测试覆盖率,本质是通过砸钱修复,来提高系统稳定性的做法。 3.软工开发,本来就应该为了提高稳定性,而要求高覆盖率的单元测试。极端情况甚至一个新函数、一个新属性都需要做一堆单元测试。但为了开发效率,也就是为了节约钱,很多公司与开发组,省了这事而已。 4.每个人,都有自己感兴趣的方向,也有自己不感兴趣的方向。 5.员工与公司谈判,本质是该岗位对于公司来说,好不好招人,以及你对于这个岗位的其他竞争者来说,技术是否远超,以及对于公司来说,是否有足够性价比。如果这些你都满足,那么你去和公司谈判,让别人去做这些你不喜欢做的事情,谈判才容易成功。 6.谈判前,要先思考最坏打算,万一你公司觉得你找事,直接开了你,然后立即能有别人上位,那你何去何从?现阶段能否迅速找到下家公司? 7.我的建议是,贵司突然有这种要求,要不是想开掉你,要不想做业务转型,要不只是对之前决策失误的项目砸钱做修复。因为 Python 这种快速开发的语言,并不适合高覆盖率的单元测试。你应该考虑一下这个要求背后的东西,看看怎么去应对。但无论如何,是时候找个备用公司了。 |
2
arischow 2022-05-07 05:30:27 +08:00 via iPhone
随便搜一下都能知道 Python 和弱类型不沾边吧……
看了一下只是对新修改代码要求覆盖,70% 要求还行? |
3
echo1937 2022-05-07 07:36:59 +08:00 via iPhone 3
冷知识,python 是强类型动态语言。
|
4
opengo 2022-05-07 08:01:31 +08:00 1
@documentzhangx66 python 是强类型
@461da73c 如果仅仅是为了覆盖率,且是 pytest ,代码块后面加注释 # pragma: no cover 可以跳过覆盖检查,后面把单测再补上(上家公司整体覆盖率要求 80%,单个文件要求覆盖率 85%) |
5
opengo 2022-05-07 08:03:24 +08:00
另外 mock 的时候可以尽量对自己函数进行 mock ,如果必须对公共方法进行 mock 建议在业务代码的地方先抽象一层函数
|
6
yazoox 2022-05-07 08:14:57 +08:00
如果是新写的代码,一般,添加测试的花费,是写代码的 2 倍左右。
你这还是老的没有测试的代码,光建立环境,mock 一堆依赖,能够让测试跑起来,就需要大量的成本。 |
7
DOLLOR 2022-05-07 09:17:49 +08:00
不出所料,一进来就看到 python 强弱类型之争😂
不过我觉得能上 type hint 就上 type hint |
8
lolizeppelin 2022-05-07 10:16:45 +08:00
能大量单元测试的代码都是设计得比较好了的....
没设计好的上单元测试?...啧啧... |
9
so1n 2022-05-07 10:23:39 +08:00 1
无论啥语言 没有经过良好的设计 都很难写好测试用例
|
10
arvinsilm 2022-05-07 11:16:37 +08:00
@documentzhangx66 7 也有例外的,比如我司,只是 QA 换新老大,突然掌握话语权了
|
11
zzhaolei 2022-05-07 11:50:35 +08:00
type hint 不能强制检查,有些强制检查的工具也不好用。目前我感觉最大的用处是让 IDE 提示
|
12
darkengine 2022-05-07 18:11:30 +08:00
可以,延期
|
13
documentzhangx66 2022-05-08 01:21:49 +08:00
|
14
documentzhangx66 2022-05-08 01:23:56 +08:00
|