开源项目需要单元测试吗

2023-03-09 11:59:51 +08:00
 matrix1010

昨天有个关于单元测试的帖子 ( https://v2ex.com/t/922133) 提到基于开源的小公司可能做的比较好, 我挺感兴趣于是搜了搜国内比较火的小公司开源项目。但至少我看的这几个 PR 似乎都没有任何单元测试 /集成测试:

bytebase: https://github.com/bytebase/bytebase/pull/5007

zadig: https://github.com/koderover/zadig/pull/2366

rath: https://github.com/Kanaries/Rath/pull/292

这是不是说明公司级别的开源项目其实不需要单元测试,有 QA 来保障没问题就行

2064 次点击
所在节点    程序员
12 条回复
Chad0000
2023-03-09 12:01:39 +08:00
开源只是把代码开放而已,just as it is. 你怎么做都成。
lianyue
2023-03-09 12:08:51 +08:00
如果 写单元测试方便就写 不方便些毛..
但是文档和演示基本上都要写要不然根本没人用

https://github.com/lian-yue/vue-upload-component
我就没写单元测试
ksc010
2023-03-09 12:15:01 +08:00
单元测试 有一个很大的好处是能极大的降低你升级第三方库 /框架的风险
learningman
2023-03-09 12:47:17 +08:00
单测写的详细也方便别的贡献者,你 review 也方便
Huelse
2023-03-09 12:51:48 +08:00
文档最重要,别的都往后排
dayeye2006199
2023-03-09 13:33:03 +08:00
没测试和流水线的开源项目,基本告诉别人,你别来贡献了,这个东西只有我自己能玩儿起来
matrix1010
2023-03-09 13:34:44 +08:00
@dayeye2006199 很有道理
dream4ever
2023-03-09 14:46:44 +08:00
@ksc010 的确如此,用 Express.js 写的后端项目,GitHub 报了不少库的安全风险了,而且各种库也在不断推出新版本,没有完善的测试随便升级库的版本就很容易出事,之前就遇到升级 axios 到最新版结果 API 有变化的情况了,debug 了好半天才发现是 axios 的原因,如果有测试,就可以第一时间发现这种问题了。
artnowben
2023-03-09 15:04:04 +08:00
毋庸置疑,开源项目质量是非常重要的。
但是不同的项目有不同的测试方法,有的项目侧重模块级别、功能级别的测试,有的偏重性能测试。
dperf 主要强调模块、功能级别的测试,没有单元测试。 https://github.com/baidu/dperf
jones2000
2023-03-09 22:38:36 +08:00
单元测试会加重开源作者的工作量, 特别是个人开源作者,本来就是业余抽空的时间搞的。文档和测试实际比开发代码更消耗时间。
hamsterbase
2023-03-10 07:21:43 +08:00
还有可能是代码开源,测试不开源。

比如说 sqlite 的一部分测试是专有的
matrix1010
2023-03-10 08:38:41 +08:00
@hamsterbase sqlite 和我说的这些国产项目不具备可比性。就算有些没开源,已经开源的测试部分也已经吊打这些项目了

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

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

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

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

© 2021 V2EX