testdriven.io flask-tdd-docker course chapter 15 pipeline stage test ERROR: Job failed: exit code 1
testdriven.io flask-tdd-docker course chapter 15 pipeline stage test ERROR: Job failed: exit code 1
我正在关注 python/flask/docker tutorial。一切正常,直到我推送到 GitLab 管道阶段构建良好然后在测试阶段失败:
stage: test
image: $IMAGE:latest
services:
- postgres:latest
variables:
POSTGRES_DB: users
POSTGRES_USER: runner
POSTGRES_PASSWORD: runner
DATABASE_TEST_URL: postgres://runner:runner@postgres:5432/users
script:
- python3.8 -m venv env
- source env/bin/activate
- pip install -r requirements.txt
- pip install black flake8 isort pytest
- pytest "project/tests" -p no:warnings
- flake8 project
- black project --check
- isort project/**/*.py --check-only
管道测试日志:
$ pytest "project/tests" -p no:warnings
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: /builds/piccoloa/flask-on-docker/project/tests, configfile: pytest.ini
collected 30 items
project/tests/test_config.py ... [ 10%]
project/tests/test_ping.py . [ 13%]
project/tests/test_users.py ............. [ 56%]
project/tests/test_users_unit.py ............. [100%]
============================== 30 passed in 0.41s ==============================
$ flake8 project
$ black project --check
would reformat /builds/piccoloa/flask-on-docker/project/api/users.py
would reformat /builds/piccoloa/flask-on-docker/project/tests/test_users.py
would reformat /builds/piccoloa/flask-on-docker/project/tests/test_users_unit.py
Oh no!
3 files would be reformatted, 10 files would be left unchanged.
Cleaning up file based variables
00:00
ERROR: Job failed: exit code 1
找到这个但不知道如何解决或者它是否与问题有关。 GitLab Issue中提到的“调整您的阈值或提高覆盖率”。当我 运行 在本地主机上测试时,我没有收到任何错误?
没有完全解决失败的工作。作为 gitlab 新手,唯一对我有用的方法是在 运行 本地匹配测试阶段 pip python packages install in test scripts in requirements.txt 并发表评论出 flake8 和 black 测试脚本。
我认为您的方向是正确的。在我看来,您的 CI 失败是因为 black
正在寻找要重新格式化的文件。您的 CI 中 black
运行 的版本可能与本地运行的版本不同,因此建议 new/different 更改。
您可以查看 Gitlab 管道的输出,了解那里使用的 black
版本。如果版本与你本地版本的black
不匹配,请尝试通过Gitlab使用的black
版本在本地运行你的文件,然后将那些更改的文件提交到你的repo以触发你的 CI.
我正在关注 python/flask/docker tutorial。一切正常,直到我推送到 GitLab 管道阶段构建良好然后在测试阶段失败:
stage: test
image: $IMAGE:latest
services:
- postgres:latest
variables:
POSTGRES_DB: users
POSTGRES_USER: runner
POSTGRES_PASSWORD: runner
DATABASE_TEST_URL: postgres://runner:runner@postgres:5432/users
script:
- python3.8 -m venv env
- source env/bin/activate
- pip install -r requirements.txt
- pip install black flake8 isort pytest
- pytest "project/tests" -p no:warnings
- flake8 project
- black project --check
- isort project/**/*.py --check-only
管道测试日志:
$ pytest "project/tests" -p no:warnings
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: /builds/piccoloa/flask-on-docker/project/tests, configfile: pytest.ini
collected 30 items
project/tests/test_config.py ... [ 10%]
project/tests/test_ping.py . [ 13%]
project/tests/test_users.py ............. [ 56%]
project/tests/test_users_unit.py ............. [100%]
============================== 30 passed in 0.41s ==============================
$ flake8 project
$ black project --check
would reformat /builds/piccoloa/flask-on-docker/project/api/users.py
would reformat /builds/piccoloa/flask-on-docker/project/tests/test_users.py
would reformat /builds/piccoloa/flask-on-docker/project/tests/test_users_unit.py
Oh no!
3 files would be reformatted, 10 files would be left unchanged.
Cleaning up file based variables
00:00
ERROR: Job failed: exit code 1
找到这个但不知道如何解决或者它是否与问题有关。 GitLab Issue中提到的“调整您的阈值或提高覆盖率”。当我 运行 在本地主机上测试时,我没有收到任何错误?
没有完全解决失败的工作。作为 gitlab 新手,唯一对我有用的方法是在 运行 本地匹配测试阶段 pip python packages install in test scripts in requirements.txt 并发表评论出 flake8 和 black 测试脚本。
我认为您的方向是正确的。在我看来,您的 CI 失败是因为 black
正在寻找要重新格式化的文件。您的 CI 中 black
运行 的版本可能与本地运行的版本不同,因此建议 new/different 更改。
您可以查看 Gitlab 管道的输出,了解那里使用的 black
版本。如果版本与你本地版本的black
不匹配,请尝试通过Gitlab使用的black
版本在本地运行你的文件,然后将那些更改的文件提交到你的repo以触发你的 CI.