pytest에서 단일 파일을 테스트하는 방법


88

pytest에서 단일 파일을 어떻게 테스트합니까? 문서에서 "이 파일 만 테스트"옵션과 무시 옵션 만 찾을 수있었습니다.

가급적 setup.cfg이면 ide에서 다른 파일 테스트를 실행하고 싶기 때문에 대신 명령 줄 에서 작동합니다. 전체 제품군이 너무 오래 걸립니다.

답변:


94

pytest파일 경로로 실행하기 만하면 됩니다.

뭔가

pytest tests/unit/some_test_file.py


3
좋아, 이것은 pycharm이 수행하는 것처럼 보이지만 여전히 전체 제품군을 실행 중입니다. 명령 줄에서 py.test를 실행하면 어떤 이유로 든 segfault가 제공됩니다. 이것이 원래 질문의 범위를 벗어난 것으로 생각되므로 작동하도록 할 수 있으면 귀하의 답변을 수락하겠습니다.
simonzack

3
분명히 addoptssetup.cfg에서 경로가 추가되면 문제가 발생합니다.
simonzack

1
@simonzack 파일에있는 여러 테스트 케이스에서 단일 테스트 케이스를 실행하고 싶을 것 같습니다. 이것을 시도하십시오 : py.test test_basic.py -k test_first 여기서 test_first는 내 test_basic.py 파일에있는 테스트 케이스입니다.
Anurag Sinha

73

이것은 매우 간단합니다.

$ pytest -v /path/to/test_file.py

-v플래그는 상세를 증가시키는 것이다. 해당 파일 내에서 특정 테스트를 실행하려는 경우 :

$ pytest -v /path/to/test_file.py::test_name

패턴을 따르는 이름을 테스트하려면 다음을 사용할 수 있습니다.

$ pytest -v -k "pattern_one or pattern_two" /path/to/test_file.py

또한 테스트 표시 옵션이 있으므로 -m플래그를 사용하여 표시된 테스트의 하위 집합을 실행할 수 있습니다 .

test_file.py

def test_number_one():
    """Docstring"""
    assert 1 == 1


@pytest.mark.run_these_please
def test_number_two():
    """Docstring"""
    assert [1] == [1]

로 표시된 테스트를 실행하려면 run_these_please:

$ pytest -v -m run_these_please /path/to/test_file.py

2
에 대한 path/to/test.py::test_method오류> 오류 : 찾을 수 없음 : /home/namgivu/NN/code/myproject/tests/models/test_bill.py::test_generate_for_today_normal_cycle (이름 없음 '/ home / namgivu / NN / code / myproject / tests / models /test_bill.py::test_generate_for_today_normal_cycle 'in any of [<Module'tests / models / test_bill.py '>])
Nam G VU

1
ID가있는 매개 변수화 된 테스트는 어떻습니까? -k my_test[a test id here]작동하지 않으며 지금까지 내가 관리 한 최고 -k "my_test and a and test and id and here"는 거의 친숙한 형식 이 아니라는 것 입니다.
폴 D 스미스

1
이 예제에 제공된 예제 (특히 하나의 혼합 경로 및 노드 선택 구문)는 IMO만큼 분명하지 않기 때문에 pytest 문서에 추가되어야합니다.
cjauvin

12

이것은 나를 위해 일했습니다.

python -m pytest -k some_test_file.py

이것은 개별 테스트 기능에도 적용됩니다.

python -m pytest -k test_about_something

이것은 pytest directory_to_tests/some_test_file.py나를 위해 작동하지 않습니다. 나는 3.8.2 파이썬 창에있어 및 pytest 6.0.1
minghua
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.