一个巨大的老 Python 项目突然要求单侧覆盖率到 70%

2022-05-06 21:43:37 +08:00
 461da73c

提交的 patch , 直接强制的检查单侧覆盖跟行的修改比例,不达标直接 CI -1 。

以前的代码都没有单侧。

蛋疼了,不敢提交 patch 了,打击面太广。

3331 次点击
所在节点    程序员
14 条回复
documentzhangx66
2022-05-07 02:16:04 +08:00
1.Python 语言属于弱类型,本来就极容易写出不严谨、不稳定的代码,因为这个问题,本身也不适合大项目。如果谁用 Python 去做大项目,也是语言选型失败的表现。

2.要求大幅度提高单元测试覆盖率,本质是通过砸钱修复,来提高系统稳定性的做法。

3.软工开发,本来就应该为了提高稳定性,而要求高覆盖率的单元测试。极端情况甚至一个新函数、一个新属性都需要做一堆单元测试。但为了开发效率,也就是为了节约钱,很多公司与开发组,省了这事而已。

4.每个人,都有自己感兴趣的方向,也有自己不感兴趣的方向。

5.员工与公司谈判,本质是该岗位对于公司来说,好不好招人,以及你对于这个岗位的其他竞争者来说,技术是否远超,以及对于公司来说,是否有足够性价比。如果这些你都满足,那么你去和公司谈判,让别人去做这些你不喜欢做的事情,谈判才容易成功。

6.谈判前,要先思考最坏打算,万一你公司觉得你找事,直接开了你,然后立即能有别人上位,那你何去何从?现阶段能否迅速找到下家公司?

7.我的建议是,贵司突然有这种要求,要不是想开掉你,要不想做业务转型,要不只是对之前决策失误的项目砸钱做修复。因为 Python 这种快速开发的语言,并不适合高覆盖率的单元测试。你应该考虑一下这个要求背后的东西,看看怎么去应对。但无论如何,是时候找个备用公司了。
arischow
2022-05-07 05:30:27 +08:00
随便搜一下都能知道 Python 和弱类型不沾边吧……

看了一下只是对新修改代码要求覆盖,70% 要求还行?
echo1937
2022-05-07 07:36:59 +08:00
冷知识,python 是强类型动态语言。
opengo
2022-05-07 08:01:31 +08:00
@documentzhangx66 python 是强类型
@461da73c 如果仅仅是为了覆盖率,且是 pytest ,代码块后面加注释 # pragma: no cover 可以跳过覆盖检查,后面把单测再补上(上家公司整体覆盖率要求 80%,单个文件要求覆盖率 85%)
opengo
2022-05-07 08:03:24 +08:00
另外 mock 的时候可以尽量对自己函数进行 mock ,如果必须对公共方法进行 mock 建议在业务代码的地方先抽象一层函数
yazoox
2022-05-07 08:14:57 +08:00
如果是新写的代码,一般,添加测试的花费,是写代码的 2 倍左右。
你这还是老的没有测试的代码,光建立环境,mock 一堆依赖,能够让测试跑起来,就需要大量的成本。
DOLLOR
2022-05-07 09:17:49 +08:00
不出所料,一进来就看到 python 强弱类型之争😂

不过我觉得能上 type hint 就上 type hint
lolizeppelin
2022-05-07 10:16:45 +08:00
能大量单元测试的代码都是设计得比较好了的....
没设计好的上单元测试?...啧啧...
so1n
2022-05-07 10:23:39 +08:00
无论啥语言 没有经过良好的设计 都很难写好测试用例
arvinsilm
2022-05-07 11:16:37 +08:00
@documentzhangx66 7 也有例外的,比如我司,只是 QA 换新老大,突然掌握话语权了
zzhaolei
2022-05-07 11:50:35 +08:00
type hint 不能强制检查,有些强制检查的工具也不好用。目前我感觉最大的用处是让 IDE 提示
darkengine
2022-05-07 18:11:30 +08:00
可以,延期
documentzhangx66
2022-05-08 01:21:49 +08:00
@arischow

@echo1937

@opengo

不好意思,我在 1 楼,说错了。

更正一下,Python 是 动态类型,而不是弱类型。

但这并不影响我在 1 楼写的结论。
documentzhangx66
2022-05-08 01:23:56 +08:00
@DOLLOR

我并不是想踩 Python ,任何语言都有优缺点。

Python 是动态类型,不利于大型、严谨的项目而已。

但用 Python 写小工程,的确是爽的一 bi 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX