平常主要是依靠 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 单测方法
1
ty89 2016-11-06 12:11:41 +08:00
不同的语言其设计的哲学不相同,因此会造成一些使用习惯上的差别,而 python 比较灵活,除了编码规范等大家有一些共识之外,还是有很多地方是需要开发者自己来考虑的。
我个人的看法是,暂时先不用太在意这些细节,先将你的功能开发完成,把测试跑通,再和你的小伙伴一起讨论出一套自己的风格,然后遵循它并不断完善改进之。 |
2
ldbC5uTBj11yaeh5 2016-11-06 12:15:52 +08:00
nose
|
3
yangtukun1412 2016-11-06 12:16:01 +08:00 via Android
建到同一目录下是 PyCharm 的锅吧, 和 Python 有什么关系…
|
4
neoblackcap 2016-11-06 12:18:04 +08:00
请使用 pytest
不过这个框架是很 pythonic 的,你若是习惯写 Java 可能不不习惯它。不过你说的事情,跟语音无关跟测试框架以及配置有关 |
5
clarkchen OP @yangtukun1412 是这样的,跟 Python 没啥关系,,这个问题应该描述为
更好的 Pycharm 插件,,或者是 高效的单元测试的 目录结构。。。 |
6
clarkchen OP @jigloo , @neoblackcap , nose , pytest or unitest 都是测试的一些框架,从 Python Integrated Tools 中就能自己选择不同的框架,效果是一样的。
这里描述的问题,,自动创建的时候都是在同一级目录中创建。。。 所以想请假的是 一个合理的 Python 单元测试目录结构。。。 |
7
latyas 2016-11-06 12:35:18 +08:00
pytest 是 python 做 unittest 的首选框架,以及,你用 pycharm 创建 unittest 的方式错了, tests 目录需要自己建,单元测试的文件放在这个目录下,命名 test_UNIT.py 。
|
8
neoblackcap 2016-11-06 12:46:45 +08:00
@clarkchen 没有什么合理不合理,你认为效果都是一样的那是你没有去了解他们,我自己写测试就是放在根目录下面的一个 tests 文件夹里的。所以我就说跟配置相关嘛。
|
9
nkssai 2016-11-06 13:11:10 +08:00
=。= Python 单测的习惯就是不像 Java 那样连都一定要一一对应吧,你看 requests 、 django 、 httpie 不都是主目录下一个 test ,里面的结构和项目代码的组织结构也不是一样对应的,更像是按照功能划分的。毕竟语言的组织结构就不一样。
|
10
yidinghe 2016-11-06 13:17:05 +08:00 via Android
你就想,单元测试也是代码的一部分,就好了
|
11
WangYanjie 2016-11-06 13:27:18 +08:00
这锅 python 该接吗?急,在线等
|
12
clarkchen OP @nkssai, @latyas , @neoblackcap
说的有道理~~ Github 里面的成型项目,,,的确就是这么搞的,, 根目录下建立一个 tests 然后按照 test_UNIT.py 这种格式来命名,如果代码量较多则根据功能建立些子文件夹,应该就是这个样子 |
13
wyntergreg 2016-11-06 14:32:20 +08:00
玩 python
要你妹单元测试 |
14
janxin 2016-11-06 15:10:05 +08:00
看来就我一个人是这么写测试的吗....
|