Я создал это как ответ на ваш вопрос и моя путаница , Я надеюсь, что это помогает. Обратите внимание на PYTHONPATH
как в командной строке py.test
, так и в tox.ini
.
Пример проекта here, а также ниже:
mymodule.py
:
import boto3
def stuff():
print "Yep!"
tests/text_syntax_errors.py
:
import boto3
import mymodule
# Define a basic test that actually doesn't do much.
# I just wanted more than zero tests
def test_one_equals_one():
assert 1 == 1
tox.ini
:
[tox]
skipsdist = True
envlist = py27
[flake8]
max-line-length = 119
[testenv]
deps= -r{toxinidir}/requirements.txt
commands=py.test
setenv =
PYTHONPATH = {toxinidir}
requirements.txt
:
boto3
pytest
Из моих README.md
:
Как-для запуска этих примеров
Моя первоначальная мотивация для проверки моего кода было то, что я неправильно импортированный модуль в скрипте, Я писал для работы.
Если вы отредактируете mymodule.py
и удалите b
с "boto3
", вы увидите нижеприведенные команды. И это хорошо.Аналогично, если вы хотите увидеть фактический сбой теста, просто отредактируйте tests/test_syntax_errors.py
и смените 1 == 1
на 1 == 0
.
py.test
mbp0 pytest_test[master+*] $ PYTHONPATH=. py.test
========================== test session starts ==========================
platform darwin -- Python 2.7.11, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /Users/jmacdonald/w/pytest_test, inifile:
collected 1 items
tests/test_syntax_errors.py .
======================= 1 passed in 0.11 seconds ========================
mbp0 pytest_test[master+*] $
токсикодендрон
mbp0 pytest_test[master+*] $ tox
py27 installed: boto3==1.3.1,botocore==1.4.37,docutils==0.12,futures==3.0.5,jmespath==0.9.0,py==1.4.31,pytest==2.9.2,python-dateutil==2.5.3,six==1.10.0
py27 runtests: PYTHONHASHSEED='713732044'
py27 runtests: commands[0] | py.test
========================== test session starts ==========================
platform darwin -- Python 2.7.11, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /Users/jmacdonald/w/pytest_test, inifile:
collected 1 items
tests/test_syntax_errors.py .
======================= 1 passed in 0.11 seconds ========================
________________________________ summary ________________________________
py27: commands succeeded
congratulations :)
mbp0 pytest_test[master+*] $
Вы не можете разместить свой код здесь – Damirchi
Это один из первых моих ответов на StackOverflow. Можете ли вы рассказать о том, что вы имеете в виду? Мой код является конкретным ответом на этот вопрос. Это слишком сложно, чтобы размещать в текстовой области. –
@JeffMacDonald есть специальное форматирование кода, вы можете использовать его! :) – gofr1