在LSF上运行Python单元测试

4 投票
1 回答
707 浏览
提问于 2025-04-17 00:24

我需要让我的Python单元测试并行运行,这些测试是用默认的unittest模块写的。现在我在考虑两种方法:

  1. 继续使用unittest,但是用一个自定义的“多进程”运行器,这个运行器可以通过Platform LSF(一个远程执行工具)来启动测试。你可以在TestOOB项目中找到一个例子。
  2. 使用py.test,并定制pytest-xdist插件,让它使用LSF而不是SSH来运行。

我倾向于第一种方法,因为我已经有一个可以工作的设置,特别是测试套件的生成(这个过程使用了一个解析Excel表格的生成器,比较复杂)。

有没有人推荐我应该选择哪种方法呢?

注意:我公司正在使用LSF,我必须使用它来与其他团队共享资源。

1 个回答

1

我建议你先从pypi上简单安装一下“pytest-xdist”,然后用“py.test -n 5”命令在5个并行进程中运行你现有的测试。如果这样基本上能正常工作,那就说明把pytest-xdist改成使用LSF传输是个值得尝试的选项。实际上,你需要研究一下如何扩展execnet(http://codespeak.net/execnet),这是一个用于分布式执行的基础库。希望这对你有帮助。

撰写回答