您会在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动作上进行,您不必再考虑一下。