跳至主要内容

pytest插件,用于使用mpiexec运行单独的测试

项目描述

pytest-mpixec

pytest插件,用于使用mpiexec运行单独的测试

使用 mark.mpiexec 标记的测试将在单独的实例中使用mpiexec运行,而不是在当前进程中运行。

子进程测试将使用pytest运行,因此仍然应该使用固定值和其他一切!

如果为名为 mpiexec_n 的参数指定了参数化,则可以参数化进程数。

试试看

pip install pytest-mpiexec

并编写使用mpiexec的测试

from mpi4py import MPI

@pytest.mark.mpiexec(n=2)
def test_my_mpi_code(fixtures):
  assert something

@pytest.mark.mpiexec
@pytest.mark.parametrize("mpiexec_n", [1, 2, 3])
def test_my_mpi_code(mpiexec_n):
    assert MPI.COMM_WORLD.size == mpiexec_n

选项

如果由于某种原因您的mpi可执行文件不是 mpiexec,则可以使用以下方式指定它

pytest --mpiexec your-mpiexec

pytest-mpiexec试图在显示失败时的有用信息的同时减少噪音。这意味着当一切正常时,应该只有一个输出。但是,并行失败既可能是嘈杂的,也可能是令人困惑的,因此这里有一些选项,通过 --mpiexec-report 选项公开

选项 行为
first_failure 显示具有错误的第一个排名的测试输出(默认值
all_failures 显示所有失败的排名的输出(通常很嘈杂)
all 显示所有测试结果(即使有重复的PASSED输出)
concise 尝试只显示每个 unique 失败一次(实验性

《简洁》选项是实验性的,旨在在可能从 first_failure 省略的信息和 all_failures 的冗余噪声之间取得平衡。

注意事项

如果您使用模块或会话范围的 fixtures,则将运行另一个实例,因此这些不能与其他 pytest 运行冲突(例如,端口、文件等冲突)。

先例

  • pytest-mpi(在兼容此包的 mpi 中运行的测试的辅助工具!)
  • pytest-easyMPI(与这个目标相似,但采用不同的方法)

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

pytest_mpiexec-0.0.1a3.tar.gz (9.0 kB 查看哈希值)

上传时间

构建分布

pytest_mpiexec-0.0.1a3-py3-none-any.whl (7.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面