python - 引导测试和使用 Python 测试发现

标签 python unit-testing

我继续让它“引导”我的测试的问题。

我遇到的问题正是what this guy has .

顶级解决方案讨论了创建“boostrap”脚本。我假设我必须然后枚举所有要运行的测试,或者使用 __all__ 关键字在 __init__.py 文件中使用测试 list 。但是,我注意到 most recent Python documentation on unittest不再谈论 __all__ 了。

在 2.7 中,我们有名为“discovery”的 python 命令

python -m unittest discover

效果更好。因为: 1)不需要 Nose 2) 不需要测试 list

但是好像没有办法“bootstrap”

我需要使用另一个测试运行器吗?一种允许引导和发现的方法?

我需要 py.test 吗?
http://pytest.org/

我需要引导的原因是 this guy has 的问题.基本上,如果我直接运行测试,我的导入语句将无法正常工作。我想从我的项目的顶部执行我的测试套件,就像应用程序正常运行时一样。

毕竟,import 语句总是相对于它们的物理位置。 (顺便说一句,我认为这是 Python 中的一个障碍)

定义:什么是引导? 引导意味着我想在整个项目中运行任何测试之前进行一些设置。这有点像我要求在整个项目级别进行“测试设置”。

更新 Here is another posting about the same thing .使用这个 2.7 命令,我们可以避免 Nose。但是如何添加 Bootstrap 呢?

最佳答案

我明白了!

使用我编写并称为“runtests.py”并放置在我的项目根目录中的这个脚本,我能够“引导”,即运行一些初始化代码并使用发现。哇!

在我的例子中,“ Bootstrap ”代码是两行:

import sys
sys.path.insert(0, 'lib.zip')

谢谢!

#!/usr/bin/python

import unittest
import sys
sys.path.insert(0, 'lib.zip')

if __name__ == "__main__":
    all_tests = unittest.TestLoader().discover('.')
    unittest.TextTestRunner().run(all_tests)

关于python - 引导测试和使用 Python 测试发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432359/

相关文章:

遗留代码的 Java 重构策略

python - 锁屏时 pywinauto 不工作

c# - 对调用同一对象上的另一个公共(public)函数的函数进行单元测试的正确方法是什么?

.net - 如何对与 VS DOM 交互的 Visual Studio 插件进行单元测试

python - 如何扩展数组或将值附加到 Django ORM 的查询集更新中的数组字段? [PostgreSQL]

c# - 用于单元测试的域模型的接口(interface)/虚拟

C#:使用不同的配置文件运行每个单元测试

c# - Python 可以对字符串进行编码以匹配 ASP.NET 成员提供程序的 EncodePassword

python - matplotlib 中的金字塔 3D 直方图(如 1976 年有关 SVD 的历史电影)

python - 如何将 X 量的先前数据拉入 CSV 中的行