У меня проблемы с реализацией игрушечного примера, который запускает pytest в .gitlab-ci.yml
gitlab_ci - это репозиторий, содержащий один файл test_hello.py
gitlab_ci/
test_hello.py
test_hello.py
# test_hello.py
import pytest
def hello():
print("hello")
def hello_test():
assert hello() == 'hello'
.gitlab-ci.yml
# .gitlab-ci.yml
pytest:
image: python:3.6
script:
- apt-get update -q -y
- pip install pytest
- pytest # if this is removed, the job outputs 'Success'
CI / CD терминалвывод
$ pytest
=== test session starts ===
platform linux -- Python 3.6.9, pytest-5.2.0, py-1.8.0, pluggy-0.13.0
rootdir: /builds/kunov/gitlab_ci
collected 0 items
=== no tests ran in 0.02s ===
ERROR: Job failed: exit code 1
Я не уверен, почему тест не был запущен ... pytest, похоже, не распознает test_hello.py
Решение
Поместите файл python в только что созданную папку tests :
gitlab_ci/
.gitlab-ci.yml
tests/
test_hello.py
Измените gitlab-ci.yml следующим образом:
# .gitlab-ci.yml
pytest:
image: python:3.6
script:
- apt-get update -q -y
- pip install pytest
- pwd
- ls -l
- export PYTHONPATH="$PYTHONPATH:."
- python -c "import sys;print(sys.path)"
- pytest
И test_hello.py
останется прежним.