py.test를 사용하여 테스트 목록 (약 5 개 항목)을 제외하고 싶습니다.py.test로 테스트 목록을 제외하고 명령 줄에서 제외 하시겠습니까?
이 목록을 명령 줄을 통해 py.test에 제공하고 싶습니다.
소스 수정을 피하고 싶습니다.
어떻게 수행하나요?
py.test를 사용하여 테스트 목록 (약 5 개 항목)을 제외하고 싶습니다.py.test로 테스트 목록을 제외하고 명령 줄에서 제외 하시겠습니까?
이 목록을 명령 줄을 통해 py.test에 제공하고 싶습니다.
소스 수정을 피하고 싶습니다.
어떻게 수행하나요?
참조 옵션은 -k
입니다. 와
def test_spam():
pass
def test_ham():
pass
def test_eggs():
pass
호출의 pytest : 당신이 다음 테스트가있는 경우
pytest -v -k 'not spam and not ham' tests.py
를 당신은 얻을 것이다 :
collected 3 items
pytest_skip_tests.py::test_eggs PASSED [100%]
=================== 2 tests deselected ===================
========= 1 passed, 2 deselected in 0.01 seconds =========
니스, 나는 오늘 뭔가를 배웠다! –
예, 작동합니다. 이 답변에 감사드립니다. – guettli
이가 conftest.py
파일을 생성하여 작업을 얻을 수 :
# content of conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--skiplist", action="store_true",
default="", help="skip listed tests")
def pytest_collection_modifyitems(config, items):
tests_to_skip = config.getoption("--skiplist")
if not tests_to_skip:
# --skiplist not given in cli, therefore move on
return
skip_listed = pytest.mark.skip(reason="included in --skiplist")
for item in items:
if item.name in tests_to_skip:
item.add_marker(skip_listed)
: 당신은 항상 동일한 테스트를 건너 뛸 경우
가$ pytest --skiplist test1 test2
참고 목록이 정의 될 수를 conftest
.
당신은 tests selecting expression를 사용할 수도 this useful link
답변 해 주셔서 감사합니다. – guettli
당신이 argparse를 사용하여 시도? – IMCoins
내 상황에 맞는 @IMCoins py.test는 명령 행 도구입니다. 나는이 문맥에서 파이썬 소스를 수정할 수 없다. argparse는 파이썬 라이브러리이기 때문에 여기서는 도움이되지 않는다고 생각합니다. – guettli