Skip to main content
 首页 » 编程设计

python之Nose 多进程问题

2025年05月04日13telwanggs

我在运行 Nose 测试时遇到问题。当我从 Eclipse 运行我的套件时,使用 Run As>Python unit-test 并将测试运行器设置为 Nose 测试运行器 和参数 --verbosity=2 - -processes=2 --process-timeout=300 在 PyDev>PyUnit 的 Eclipse 首选项中,我得到了一个很好的、有序的运行,其中有 4 个新的 python 进程启动,我得到了结果在几分钟内返回我的 19 个测试(一个派生自 object 的类,带有 2 个测试生成器方法,第一个分派(dispatch) 6 个测试,第二个 13 个)(每个测试都进行一系列 REST 调用)做一些验证)。但是,当我使用 nosetests --processes=2 --verbosity=2 --process-timeout=300 testfile.py 从命令行运行同一个文件时,它会生成 100 个新的 Python 进程似乎是按组组织的,其中一个的内存使用量超过 6k,而其他的则有 50-500k。这些进程无限期地产生,并且测试永远不会完成,直到我开始手动终止进程。如果我在没有多处理的情况下从命令行运行测试,它们也能很好地完成。

Eclipse 是否对测试过程进行了一些额外的整理?我是否可以在 Eclipse 中和从命令行运行不同版本的 Nose(即使我在站点包中只看到 1 个 nose 安装)?

请您参考如下方法:

尝试玩:

_multiprocess_can_split_ 
and  
_multiprocess_shared_ 

在你的测试类中。

文档:http://nose.readthedocs.io/en/latest/doc_tests/test_multiprocess/multiprocess.html