关于 unittest,如何从文件添加测试用例?

2017-04-27 23:58:05 +08:00
 freshmanc

近日学校软件测试实验课……任务需要做一个 func 函数做类似这样的工作(不使用库函数):

datetime.date(year,month,day)+datetime.timedelta(days =2)

函数实现问题不大,用元组输入输出,错误输入(月份,日期越界什么的)抛出异常,在网上了解到 unittest 这个工具,网上的教程以及官方文档中提及 testcase 都是直接把用例写在代码里,不知有没有从外部文件导入测试用例的方法?

2989 次点击
所在节点    Python
6 条回复
freshmanc
2017-04-28 00:01:42 +08:00
啊…写的时候突然想到异常怎么做,就改了正文然而没改标题…
xiechengen
2017-04-28 00:55:21 +08:00
有的,还可以写在 xml file 里方便后期更改
gefranks
2017-04-28 00:58:44 +08:00
我们有个很老的框架是用 excel 组织的用例.用例都是类似函数一样的。然后用 java 里面的反射来执行真正的函数
awkun
2017-04-28 12:48:15 +08:00
doctest 也可以独立文件的~


x.py

```
def add(a, b):
return a + b
```

case.txt

```
>>> from x import add
>>> add(1, 2)
3
>>> add(3, 97)
100
>>> add(3, 3) != 5
True
```

```
$ python -m doctest -v case.txt
Trying:
from x import add
Expecting nothing
ok
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(3, 97)
Expecting:
100
ok
Trying:
add(3, 3) != 5
Expecting:
True
ok
1 items passed all tests:
4 tests in case.txt
4 tests in 1 items.
4 passed and 0 failed.
Test passed.
```

https://docs.python.org/2/library/doctest.html
awkun
2017-04-28 12:55:03 +08:00
freshmanc
2017-04-28 17:33:22 +08:00
@xiechengen 啊,确实用 xml 之类的比 csv 方便很多
@gefranks 不懂 Java,不过提供了一个好思路
@awkun 谢谢你的代码…如果从文件中获取数据例如
2016 2 30
2017 3 26
当作测试数据,不知道是否可行?

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

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

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

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

© 2021 V2EX