想请教 travis-ci 的用法

2015-12-01 12:46:14 +08:00
 mianju

在学 Flask ,所以想用用自动构建。对于自动构建我不是很了解,想问一下是不是要写测试文件才有用?我无知的想法是认为代码能编译成功就能 pass , 233 。

BTW :还在本科阶段,感觉老师都没提到过单元测试,所以对这块自己也不是很理解。记得看到过一篇文章,说大一老师就强迫要写单元测试了。好像工作中单元测试还挺重要的,希望有大牛能来简单指点一下。问题已自行百度谷歌过,只是想看看 v 友对单元测试是什么理解。

2875 次点击
所在节点    程序员
8 条回复
janxin
2015-12-01 13:34:53 +08:00
对 Python 来说,能跑!=能用,很多动态类型,手误写错了不执行的时候是不知道的。所以, travis-ci 一定要配合测试才能用。

单元测试的理解应该讨论太多了,没啥好说的
neoblackcap
2015-12-01 15:13:44 +08:00
对所有的程序来说,能跑!=能用。哪怕你写了单元测试,那样一样不能说你写的就是对的,测试还会分单元测试,集成测试。

建议先写单元测试,后面在慢慢上集成测试,同时使用 coverage ,尽量使测试覆盖率到达 100%。

绝对的正确唯有定理证明,将你的需求转换为一个定理,然后编写程序去证明它,若是证明出来了,那么你就不用写什么测试了。你的程序必然是对的,但是这个领域就有点远了。
msg7086
2015-12-01 16:54:41 +08:00
还有他的姐妹站 coveralls 呢。
主要就是写 unit tests 和 feature tests ,然后每次你修改代码的时候他都会帮你跑一遍测试,这样容易发现问题。
gaocegege
2015-12-01 18:44:05 +08:00
其实一直不知道在 travis 上,数据库连接的问题有没有什么 awesome 的解决方法
mianju
2015-12-01 18:50:49 +08:00
@janxin
@neoblackcap
@msg7086
谢谢了,可能是还没学到那么高深的东西,测试这块还是不是很懂😔,只能以后慢慢来学习了
msg7086
2015-12-01 21:09:54 +08:00
@gaocegege 你想解决什么问题?

@mianju 去试试测试驱动开发吧。
单元测试一般用来测试组件是否工作正常。比如你写了一个专门处理某个资源的类,那么要确定这个类是否如期工作,一般就用单元测试来保证。单元测试应该是特别简单特别快的,至少是每秒可以跑十几个测试的那种。
集成测试,或者叫 Feature test ,一般用来测试系统的某个功能特性是否正常。比如你网站支持上传文件,那么某个特性测试就是你打开某个页面,点击上传,然后检查页面上是否出现了新上传的文件 —— 当然了,这一切都是自动化完成测试的。

另外,不要太依赖「老师」的知识。大学的实践体系是一个落后严重的体系,因为软件行业发展太迅速,你经常会遇到最近三五年,甚至有时候是最近一两年才出来的新技术新概念,所以还是尽量以自学研究为主吧。
neoblackcap
2015-12-01 23:34:55 +08:00
@gaocegege 将所有的数据库连接要不 mock 要不 stub
mianju
2015-12-02 14:03:12 +08:00
@msg7086 在自学中,光是看英文的 CSAPP 就占据了我大部分时间,所以暂时没太多精力学一些东西> <.看 Python Flask Web Development 纯粹是业余消遣看看的,结果发现有很多坑要填

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

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

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

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

© 2021 V2EX