py.test
의 반복 실행 속도를 향상시키는 방법이 있습니까? 명령 줄에서 실행할 파일을 지정하더라도 테스트 수집에 많은 시간을 소비하는 것 같습니다. 모든 .py 파일에서 pyflakes를 실행하는 것이 매우 빠르기 때문에 디스크 속도 문제가 아니라는 것을 알고 있습니다.py.test를 가속화하는 방법
답변
pytest.ini 또는 tox.ini에서 norecursedirs
옵션을 사용하면 작업 디렉토리에있는 다른 파일의 종류에 따라 많은 시간을 절약 할 수 있습니다. 내 수집 시간은 300 개의 테스트 세트에 대해 반으로 줄었습니다 (0.34 초 대 0.64 초).
내가처럼 이미 tox를 사용하는 경우, 당신은 단지 당신의 tox.ini에 다음을 추가해야합니다
[pytest]
norecursedirs = docs *.egg-info .git appdir .tox
당신은 또한 독립 pytest.ini 파일에 추가 할 수 있습니다.
pytest 설명서에는 more details on py.test configuration files이 있습니다.
추가적으로 (또는 대신에)'testpaths', 즉'testpaths = src/tests'를 설정해야합니다. 그렇다면'.git','.tox' 등을 건너 뛰지 않아도됩니다. – blueyed
내 프로젝트의 루트에서 py.test
을 호출하는 것과 동일한 문제가 있었으며 테스트 결과 세 개의 하위 디렉토리가있었습니다. 컬렉션은 실제 테스트 실행 0.4 초 전에 6-7 초 걸렸습니다.
내 솔루션은 처음 시험에 대한 상대 경로로 py.test
전화를했다 :
py.test src/www/tests/
그 또한 컬렉션을 가속화하고있는 것은, 당신은 addopts
의 끝에 시험에 상대 경로를 추가 할 수 있습니다
[pytest]
addopts = --doctest-glob='test_*.md' -x src/www/tests/
이 두 번째에 대해 아래로 컬렉션 + 실행 시간을 감소 내가 예전으로 나는 여전히 py.test
를 호출 할 수 있습니다 : 예 - 당신의 pytest.ini
에 설정.
더 좋은 방법은'testpaths' 즉'testpaths = src/www/tests'를 사용하여 설정하는 것입니다. – blueyed
xdist을 사용하면 py.test를 병렬 처리 할 수 있습니다. 원격 컴퓨터에 테스트를 제공 할 수도 있습니다. 설정에 따라 상당히 빨라질 수 있습니다 :)
cygwin의 python에서 실행되는 특별한 경우에는 유닉스 스타일의 파일 처리가 느립니다. 해당 특수 상황에서 속도를 높이는 방법은 pytest.py test very slow startup in cygwin을 참조하십시오.
일부 바이러스 백신 소프트웨어가 실행중인 경우 해제 해보십시오. 나는이 똑같은 문제를 안고 있었다. 수집 테스트가 엄청나게 천천히 진행되었습니다. 문제를 일으키는 바이러스 백신 소프트웨어 (Avast)로 판명되었습니다. 바이러스 백신 소프트웨어를 사용하지 않도록 설정하면 테스트 컬렉션이 약 5 배 빠르게 실행됩니다. 바이러스 백신을 켜고 끄는 것을 여러 번 테스트했기 때문에 그것이 내 경우에 원인인지 의심의 여지가 없습니다.
- 1. Windows에서 py.test를 설치하는 방법
- 2. Magento 1.7.0.2 가속화하는 방법
- 3. Sklearn : 결정 기능을 가속화하는 방법
- 4. lein Uberjar Buid 가속화하는 방법
- 5. py.test를 사용하는 프로젝트
- 6. 이맥스에서 py.test를 실행
- 7. Delphi XE2에서 단어 자동화를 가속화하는 방법
- 8. 웹 소켓을 가속화하는 가장 좋은 방법
- 9. sklearn : 벡터 라이저를 가속화하는 방법 (예 : Tfidfvectorizer)
- 10. PDF의 다운로드 속도/생성 속도를 가속화하는 방법
- 11. CUDA를 사용하여 C++ 코드를 가속화하는 방법
- 12. Silverlight를 가속화하는 방법 (xap 파일을로드 한 후)?
- 13. Python에서 Py.test를 사용하는 방법은 무엇입니까?
- 14. 점진적으로 setInterval을 가속화하는 방법은 무엇입니까?
- 15. 다른 하위 디렉토리에서 py.test를 실행하는 Scons
- 16. py.test를 실행할 때 .coveragerc 파일 위치
- 17. IBM Rational Application Developer/Rational 소프트웨어 아키텍트를 가속화하는 방법
- 18. 그렇지 않으면 불필요한 색인없이 Postgres에서 최소/최대 집계를 가속화하는 방법
- 19. 응용 프로그램을 가속화하는 임시 파일 (0x100)을 만드는 방법
- 20. greensock 타임 라인을 가속화하는 방법은 무엇입니까?
- 21. CSS에서 박스 섀도우 애니메이션을 가속화하는 방법은 무엇입니까?
- 22. RTMP에서 FLV 비디오를 가속화하는 방법은 무엇입니까?
- 23. POVRAY 이미지 생성을 가속화하는 샘플 구성
- 24. Jboss Seam 디버그 사이클을 가속화하는 트릭
- 25. 분산 그래프 알고리즘의 성능을 가속화하는 방법은 무엇입니까?
- 26. 에는 dpkg-buildpackage를 가속화하는 옵션이 있습니다.
- 27. 일단 상대 명령이 변경되면 py.test를 자동으로 실행할 수 있습니까?
- 28. py.test를 사용하는 동안 건너 뛴 부분 테스트를 표시하는 방법은 무엇입니까?
- 29. py.test를 doctests와 normal tests 디렉토리로 실행하는 방법은 무엇입니까?
- 30. 다른 버전의 python에 대해 py.test를 실행하는 방법은 무엇입니까?
"수집 중"단계가 느립니까? py.test를'--collectonly'와 함께 실행 해보십시오. – alecxe
예, 느린 컬렉션입니다. 나는 collect count start가 0에서 2, 7로 이동하는 것을 볼 수있다. 나는 이것을'--collectonly'로 다시 확인했다. 수집을 게시하면 거의 즉시 실행됩니다. –
400 개가 넘는 테스트 및 수집 단계의 프로젝트가 매우 빠릅니다. 또한 conftest.py는 많은 마법을 추가했으며, 많은'parametrize', fixtures,'pytest_generate_tests'를 사용하여 수집 속도가 느리다는 것을 느낄 수 있습니다. pytest 수집 단계와 상호 작용하고 느리게 만드는 코드가 없는지 확인하십시오. 그렇지 않은 경우 라인 프로파일 러와 같은 프로파일 러를 실행하여 느린 코드를 확인할 수 있습니다. – spinus