python-2.7 - 我想将一个模块从 Python 2 移植到 3,如何运行测试?

标签 python-2.7 unit-testing python-3.x testing

我已经用 Python 3 编写了一段时间,我遇到了这个我真正需要的库: https://github.com/Yelp/python-gearman

但我想尝试将它移植到 Python 3。但我不知道如何在 Python 模块中运行测试。我试过 python -m unittest discover 但它没有发现任何测试。一旦我真的对 Python 3 进行了一些更改,我将如何测试它? Python 3 中的测试机制与 2 中的相同吗?

最佳答案

首先弄清楚如何在 2.7 中运行测试,假设测试目录与 gearman 目录一起安装。 (如果你有 git 并克隆 github 存储库应该是这样,但我没有使用 git,只是 hg。)在 test/目录中,添加并运行如下所示的 shell/console 脚本。 (您没有指定操作系统。)

python -m admin_client_tests
python -m client_tests
python -m protocol_tests
python -m worker_tests

其中 python 在您的系统上调用 2.7。这些模块中的每一个都导入 _core_testing.py,不应直接运行。应该有一种方法可以一次运行所有测试,并且应该记录下来,但作者可能不希望用户运行它们。无论如何,运行 2to3 以生成一个新的包目录,查看消息,将 python 更改为运行 3.x,然后进行测试。过程困难可能是从“无需思考”到“放弃”的任何事情。 (我做了一个转换,大约是 0 到 10 难度等级上的 1 或 2。)如果成功,询问作者是否要使代码 2 和 3 兼容或有一个单独的 3.x 版本。

关于python-2.7 - 我想将一个模块从 Python 2 移植到 3,如何运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34164658/

相关文章:

Python 将 r 放在 unicode 字符串变量之前

Spring MockMVC - 如何模拟在 Controller 外部运行的自定义验证器

python - python - 如何使python单元测试在从不同的工作目录运行时始终找到测试数据文件?

Python try- except 循环中的多个值,如果引发任何异常则跳过当前迭代

python - Next on generators 不会从上次调用恢复

python - 脚本中的 UTF 8 不匹配

python - 为什么这个 Python 程序给我一个错误?

google-app-engine - GAE SDK 1.9.5 和 InvalidCertificateException

python - 在 Virtualenv 和 PyCharm 中使用 python 2.7 导入 OpenCV

unit-testing - Rust 书籍单元测试示例导致死代码警告 - 为什么?