tim*_*ofu 3 python pytest tox github-actions
我有一些连接到测试 Postgres DB 的 pytest 测试。这些在当地运作良好。然而,在 GitHub actions 上,没有 Postgres DB,所以我必须禁用具有这些测试的整个模块。
根据文档,CI Always set to true.所以我所要做的就是检查 CI 环境变量,并禁用测试模块(如果存在并设置):
if os.getenv('CI'):
    pytest.skip("No PostgreSQL on GH Actions CI/CD", allow_module_level=True)
不起作用。
我尝试过手动设置它,通过 手动设置其他环境变量env:,但它们都不对 Python 可见。通过否定上述测试来本地禁用该模块not os.getenv('CI')可以按预期工作。
可能是什么问题呢?
您没有向我们展示任何代码,但是如果我使用以下内容设置存储库.github/workflows/environment.yml:
---
name: "Environment test"
on:
  push:
  workflow_dispatch:
jobs:
  show_environment:
    name: "Show environment variables"
    runs-on: ubuntu-latest
    steps:
      - name: "Show environmetn variables"
        run: |
          env
  python_test:
    name: "Reproduce behavior from /sf/ask/4576740941/"
    runs-on: ubuntu-latest
    steps:
      - name: "Checkout repository"
        uses: actions/checkout@v2
      - name: "Set up python"
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: "Run python script"
        run: |
          python actiontest.py
并将其包含actiontest.py在存储库中:
import os
if os.getenv('CI'):
    print('Looks like GitHub!')
else:
    print('Maybe running locally?')
这一切似乎都按照记录进行。show环境显示该CI变量已按预期定义,并且actiontest.py 脚本成功检测到该变量。
如果您看到不同的行为,请在您的问题中包含一个完整的可重现示例,我们很乐意帮助您弄清楚发生了什么。
| 归档时间: | 
 | 
| 查看次数: | 4644 次 | 
| 最近记录: |