首页 > 解决方案 > 测试套件失败后如何防止snakemake停止?

问题描述

我正在尝试使用snakemake自动化集成测试(我需要一些文件的输出,所以这似乎是一个很好的工具)。但是,当我需要在 pytest 中运行两个测试套件时,如果任一套件中的单个测试失败,工作流程就会停止。所以例如我有:

rule run_tests:
    run:
        commands = [
            "pytest test_that_should_fail",
            "pytest test_that_should_succeed"
        ]
        for c in commands:
            shell(c)

而且我需要后一个测试应该失败的测试输出。运行“pytest test_that_should_fail”后有没有办法防止蛇形停止?此外,snakemake 在没有任何错误消息的情况下停止,只是一个通用的:“规则 run_tests 中的错误:jobid:0”

标签: pythonpytestsnakemake

解决方案


你可以这样写:

commands = [
   "pytest test_that_should_fail || true",
   "pytest test_that_should_succeed || true",
]

然后shell命令将有退出代码0,这意味着成功,从而继续执行其他命令。

编辑:

这是解决问题的一种简单方法,不是@bli 指出的最干净也不是最惯用的方法。


推荐阅读