【发布时间】:2011-04-29 16:45:10
【问题描述】:
小问题
将数据放入 Python 单元测试用例的最佳方法是什么?
背景
我的项目使用 Python 的 unittest 模块作为一种自动方式执行一系列需要在许多相同类型的板上运行的测试。到目前为止,这非常适合 unittest 模块的设计目的;不同之处在于每个测试用例都需要知道运行特定信息才能存储在 Django 数据库中。
需要传入的数据包括序列号、谁测试了板子、日期和其他这种性质的东西。值得注意的是,测试板的顺序是由从盒子中拉出板 X 的人选择的,因此无法预测序列号。
想法
目前,我正在通过 pickle 将所需的数据传入和传出测试用例。这种方法在小型测试中效果很好,但我担心的是读取和写入同一个文件 100k + 次为数据损坏提供了很大的空间(+ 它不是那么快)。我给 SO Question 写了一个答案,它以一种我认为可能也适用于这个应用程序的方式重定向标准输入。
下一步将围绕这些测试包装一个 GUI。个人目标是能够通过命令行运行测试,然后让 GUI 调用相同的命令行函数。出于这个原因,我倾向于转向重定向的标准输入。
系统/部署信息
所需的操作系统支持:Windows XP 和 Windows 7
理想的操作系统支持:Mac OS X 和 Linux
Python 版本:2.7
任何想法或cmets将不胜感激。
【问题讨论】:
-
关于读取同一个文件 100k+ 次:我认为操作系统会读取一次文件,然后尝试将其保存在内存中,从而消除读取时间和磁盘磨损。
-
@bgbg:我没有这样看,但我倾向于同意你的评估。
标签: python unit-testing redirect stdin pickle