Python 蛋疼的单元测试

2016-11-06 12:01:51 +08:00
 clarkchen

平常主要是依靠 Python(PyCharm) + Java(Intellij)做开发

对于某一个用户自定义的方法都可以通过 Navigate->Test 来创建单测

用 Intellij 的 Maven 框架的话,创建单元测试非常舒服,自动会在对应的 test 目录下面建立相应的文件

例如 src/main/java/abc/run.java 对应的测试文件是 test/java/abc/runTest.java

但是 Pycharm 就蛋疼了,同样自动创建单元测试,其目录结构直接就是在相同目录下创建 例如在 src 目录下 src/abc/run.py 自动创建的文件位置 src/abc/test_run.py

巨丑,,

目前我是手动集中到一个新建的 test 目录下,尽量模仿 Maven 格式,但总觉的路子有点野

不知道有木有 Python 大神,知道正规 or 人性化 的 Python 单测方法

8935 次点击
所在节点    pytest
14 条回复
ty89
2016-11-06 12:11:41 +08:00
不同的语言其设计的哲学不相同,因此会造成一些使用习惯上的差别,而 python 比较灵活,除了编码规范等大家有一些共识之外,还是有很多地方是需要开发者自己来考虑的。

我个人的看法是,暂时先不用太在意这些细节,先将你的功能开发完成,把测试跑通,再和你的小伙伴一起讨论出一套自己的风格,然后遵循它并不断完善改进之。
jigloo
2016-11-06 12:15:52 +08:00
nose
yangtukun1412
2016-11-06 12:16:01 +08:00
建到同一目录下是 PyCharm 的锅吧, 和 Python 有什么关系…
neoblackcap
2016-11-06 12:18:04 +08:00
请使用 pytest
不过这个框架是很 pythonic 的,你若是习惯写 Java 可能不不习惯它。不过你说的事情,跟语音无关跟测试框架以及配置有关
clarkchen
2016-11-06 12:21:11 +08:00
@yangtukun1412 是这样的,跟 Python 没啥关系,,这个问题应该描述为
更好的 Pycharm 插件,,或者是 高效的单元测试的 目录结构。。。
clarkchen
2016-11-06 12:34:49 +08:00
@jigloo , @neoblackcap , nose , pytest or unitest 都是测试的一些框架,从 Python Integrated Tools 中就能自己选择不同的框架,效果是一样的。

这里描述的问题,,自动创建的时候都是在同一级目录中创建。。。
所以想请假的是 一个合理的 Python 单元测试目录结构。。。
latyas
2016-11-06 12:35:18 +08:00
pytest 是 python 做 unittest 的首选框架,以及,你用 pycharm 创建 unittest 的方式错了, tests 目录需要自己建,单元测试的文件放在这个目录下,命名 test_UNIT.py
neoblackcap
2016-11-06 12:46:45 +08:00
@clarkchen 没有什么合理不合理,你认为效果都是一样的那是你没有去了解他们,我自己写测试就是放在根目录下面的一个 tests 文件夹里的。所以我就说跟配置相关嘛。
nkssai
2016-11-06 13:11:10 +08:00
=。= Python 单测的习惯就是不像 Java 那样连都一定要一一对应吧,你看 requests 、 django 、 httpie 不都是主目录下一个 test ,里面的结构和项目代码的组织结构也不是一样对应的,更像是按照功能划分的。毕竟语言的组织结构就不一样。
yidinghe
2016-11-06 13:17:05 +08:00
你就想,单元测试也是代码的一部分,就好了
WangYanjie
2016-11-06 13:27:18 +08:00
这锅 python 该接吗?急,在线等
clarkchen
2016-11-06 13:55:08 +08:00
@nkssai, @latyas , @neoblackcap

说的有道理~~

Github 里面的成型项目,,,的确就是这么搞的,, 根目录下建立一个 tests

然后按照 test_UNIT.py 这种格式来命名,如果代码量较多则根据功能建立些子文件夹,应该就是这个样子
wyntergreg
2016-11-06 14:32:20 +08:00
玩 python















要你妹单元测试
janxin
2016-11-06 15:10:05 +08:00
看来就我一个人是这么写测试的吗....

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

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

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

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

© 2021 V2EX