在 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 的更多文档。该页面还向您展示了如何根据任意逻辑跳过整个文件或目录。
我的测试目前 运行 作为每次提交检查的一部分,但它们需要一段时间才能 运行。有没有办法我只能 运行 某些分支(例如临时分支)上的测试?
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 的更多文档。该页面还向您展示了如何根据任意逻辑跳过整个文件或目录。