在GitHub操作中运行时,如何跳过pytest测试
#python #github #githubactions #pytest

您会在GitHub操作中自动运行项目的Pytest Suite?那太棒了!但是,如果您的代码中有测试在GitHub操作中运行时永远无法使用该测试,该怎么办?也许这取决于您在开发过程中拥有的某些本地资源。也许这是一个长期运行的测试,您不想咀嚼GitHub动作时间。任何。你有你的理由。关键是:您只想在测试套件在github操作中运行时跳过此特定的测试。

没问题。

github动作具有default environment variables的船,我们可以用来检查并查看我们是否在github运行。这是看起来很完美的一个:

GITHUB_ACTIONS-当GitHub操作运行工作流程时,始终设置为“ true”。您可以在本地或通过github操作进行测试时使用此变量来区分。

因此,我们只检查了该变量并使用方便的@pytest.mark.skipif()装饰器,这是我们在GitHub操作中跳过有问题的测试的方式:

# test_example.py

import os
import pytest

IN_GITHUB_ACTIONS = os.getenv("GITHUB_ACTIONS") == "true"

@pytest.mark.skipif(IN_GITHUB_ACTIONS, reason="Test doesn't work in Github Actions.")
def test_example():
   # This passes locally, but not in Github Actions
   assert os.getenv('GITHUB_URL') is None

,你有!它将随您的本地测试而运行,但不要在github动作上进行,您不必再考虑一下。