在 Palantir Foundry 中,我如何才能仅 运行 测试我的 Python 转换的某些分支?

In Palantir Foundry, how can I only run tests on some branches of my Python Transform?

我的测试目前 运行 作为每次提交检查的一部分,但它们需要一段时间才能 运行。有没有办法我只能 运行 某些分支(例如临时分支)上的测试?

PySpark 在 Foundry 运行 中使用 PyTest 进行测试。因此,您可以使用 PyTest 的 built-in 功能来控制测试是应该 运行 还是跳过。

在 Foundry 中,您可以使用 JEMMA_BRANCH 环境变量(n.b.: 此变量不会在期间设置a 构建,仅在检查中)。

将此与 PyTest 的 skipif 标记相结合,您可以将测试配置为仅在特定分支上 运行,如下所示:

import os
import pytest


def only_run_on_branches(run_branches):
    current_branch = os.environ.get('JEMMA_BRANCH')

    return pytest.mark.skipif(
        current_branch not in run_branches and current_branch is not None,
        reason=f"Not running test on current branch ('{current_branch}')"
    )


@only_run_on_branches(["master"])
def test_increment():
    assert "testing" == "hard"

您可以在 Foundry here, and on skipping tests in PyTest here 中找到有关测试 PySpark 的更多文档。该页面还向您展示了如何根据任意逻辑跳过整个文件或目录。