Chcę zacząć pisać testy jednostkowe dla mojego kodu w Pythonie, a framework py.test wydaje się lepszym rozwiązaniem niż dołączony unittest w Pythonie . Więc dodałem katalog "testy" do mojego projektu i dodałem do niego test_sample.py . Teraz chcę skonfigurować PyCharm, aby uruchamiał wszystkie testy w moim katalogu „tests”.
PyCharm rzekomo obsługuje py.test w swoim programie uruchamiającym testy. Powinieneś być w stanie stworzyć konfigurację uruchom / debug, aby uruchomić swoje testy, a PyCharm ma rzekomo okno dialogowe „tworzenia konfiguracji” specjalnie dla py.test . Ale to jest pełny zakres ich dokumentacji na ten temat i nie mogę nigdzie znaleźć tego rzekomego okna dialogowego.
Jeśli kliknę prawym przyciskiem myszy katalog w oknie narzędzia projektu, powinienem zobaczyć element menu „Utwórz <nazwa>”, ale jedyną pozycją menu zaczynającą się od „Utwórz” jest „Utwórz konfigurację uruchamiania”. Dobra, może dokumentacja jest po prostu błędna, a „Utwórz konfigurację uruchomienia” brzmi obiecująco. Niestety, jedynymi dwoma pozycjami w jego podmenu są "Unittests w C: \ mypath ..." i "Doctests w C: \ mypath ...", z których żadna nie ma zastosowania - nie używam ani unittest, ani doctest. Nie ma pozycji menu dla py.test.
Jeśli otworzę plik test_sample.py i kliknę prawym przyciskiem myszy w oknie edytora, otrzymam obiecane pozycje menu „Utwórz <nazwa>”: jest „Utwórz 'Unittests w test_sa ...'...”, a następnie „Uruchom 'Unittests in test_sa ...' "i" Debug 'Unittests in test_sa ...' ". Więc znowu, wszystko to jest specyficzne dla niezatwierdzonego frameworka; nic dla py.test.
Jeśli spróbuję pozycji menu, które mówią „nie zaznaczaj”, pojawia się okno dialogowe z opcjami „Nazwa”, „Typ”, pole grupy „Testy” z „Folder” i „Wzorzec” oraz „Skrypt” i „Klasa” "i" Funkcja "itp. To brzmi dokładnie tak, jak jest to udokumentowane jako okno dialogowe dodawania konfiguracji do testu jednostkowego Pythona , a nie jak opcje" Nazwa "i" Test do uruchomienia "i" Słowa kluczowe ", które mają się pojawić w konfiguracji okna dialogowego py.test . W oknie dialogowym nie ma nic, co umożliwiłoby przełączenie, które ramy testowe dodam.
Używam PyCharm 1.5.2 w systemie Windows z Python 3.1.3 i pytest 2.0.3. Mogę z powodzeniem uruchomić py.test
moje testy z wiersza poleceń, więc nie jest to coś prostego, jak niepoprawna instalacja pytesta.
Jak skonfigurować PyCharm do uruchamiania moich testów py.test?
File | Settings | Tools | Python Integrated Tools
to, że jest ona dostępna tylko w ustawieniach projektu, a nie w ustawieniach domyślnych w PyCharm 5.PyCharm 2017.3
Preference -> Tools -> Python integrated Tools
- Wybierzpy.test
jakoDefault test runner
.Preference -> Languages&Frameworks -> Django
- włącz zaznaczenieDo not use Django Test runner
Run/Debug configuration
, w przeciwnym razie testy zostaną uruchomione z tymi starszymi konfiguracjami.Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
źródło
New => Python File
listyKind:
rozwijanej dostępne są tylko: plik Python, Test jednostkowy, Python stub, a nie Pytest. Przeszukałem wszystkie lokalizacje wymienione w powyższych wątkach. czego mi brakuje?Myślę, że musisz użyć elementu Run / Debug Configuration na pasku narzędzi. Kliknij go i „Edytuj konfiguracje” (lub alternatywnie użyj opcji menu Uruchom-> Edytuj konfiguracje). W sekcji „Domyślne” w lewym okienku znajduje się element „py.test”, który moim zdaniem jest tym, czego potrzebujesz.
Zauważyłem również, że podręcznik nie pasuje do tego interfejsu użytkownika. Mam nadzieję, że dobrze zrozumiałem problem i to pomaga.
źródło
Target
byciaScript ath
i skierować ją do katalogu głównego folderu testówOto jak to działa z pytestem
3.7.2
(zainstalowanym przez pip) i pycharmami2017.3
:edit configurations
py.test
target
=python
i nienazwane pole poniżej natests
. Wygląda na to, że to jest nazwa twojego folderu testowego. Nie jest to zbyt trudne. Polecam również-s
argument, aby w przypadku debugowania testów konsola zachowywała się poprawnie. Bez argumentu pytest przechwytuje dane wyjściowe i powoduje błąd konsoli debugowania.my_project/tests
).foobar_test.py
plik: (import nie jest potrzebny):źródło
Dla pewności jest to słabo udokumentowane. Po dodaniu nowej konfiguracji z ustawień domyślnych będziesz mógł uruchamiać skrypt „/ Applications / PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py”. Nie jest to udokumentowane i ma swoje własne pomysły dotyczące argumentów wiersza poleceń.
Możesz:
Co dziwne, trudno będzie znaleźć jakąkolwiek dyskusję, ponieważ JetBrains dobrze radzi sobie z bombardowaniem algorytmów Google własnymi stronami.
źródło
znajdź ten wątek, gdy trafiłem na to samo pytanie i znalazłem rozwiązanie pycharm version: 2017.1.2 przejdź do "Preferencje" -> "Narzędzia" -> "Zintegrowane narzędzia Pythona" i ustaw domyślny program uruchamiający testy z prawego panelu bocznego jako py.test rozwiąż mój problem
źródło
W pycharm 2019.2 możesz to po prostu zrobić, aby uruchomić wszystkie testy:
Aby uzyskać lepszą integrację pytest z pycharm, zobacz https://www.jetbrains.com/help/pycharm/pytest.html
źródło
Używam 2018.2
Robię Uruchom -> Edytuj konfiguracje ... Następnie kliknij + w lewym górnym rogu okna dialogowego. Wybierz "testy pythona" -> py.test Następnie nadam mu nazwę typu "Wszystkie testy z py.test"
Wybieram Target: nazwa modułu i umieszczam w module, w którym są moje testy (to jest dla mnie „testy”) lub w module, w którym cały mój kod jest, jeśli moje testy są zmieszane z moim kodem. To mnie podrywało.
Ustawiłem interpreter Pythona.
Ustawiłem katalog roboczy na katalog projektu.
źródło
Ze specjalną konfiguracją Pythona Conda, która obejmowała instalację pip dla py.test oraz użycie dodatku Specs (opcja --spec) (dla Rspec jak ładny język podsumowania testów), musiałem zrobić;
1.Edytuj domyślny py.test, aby zawierał opcję = --spec, co oznacza, że użyj wtyczki: https://github.com/pchomik/pytest-spec
2. Utwórz nową konfigurację testową za pomocą py.test. Zmień jego interpreter Pythona tak, aby używał ~ / anaconda / envs / swój wybór tłumaczy, np. Py27 dla moich nazw.
3. Usuń konfigurację testu „unittests”.
4. Teraz domyślną konfiguracją testową jest py.test z moimi cudownymi wyjściami w stylu Rspec. Kocham to! Dziękuje wszystkim!
Dokumentacja ps Jetbrains dotycząca konfiguracji uruchamiania / debugowania jest dostępna tutaj: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test
źródło
W 2018.3 wydaje się, że automatycznie wykrywa, że używam pytest, co jest fajne, ale nadal nie pozwala na uruchamianie z najwyższego poziomu projektu. Musiałem uruchomić
pytest
dla każdegotests
katalogu indywidualnie.Jednak odkryłem, że mogę wybrać jedną z konfiguracji i ręcznie edytować ją, aby działała w katalogu głównym projektu i że to zadziałało. Muszę ręcznie wybrać go z listy rozwijanej Konfiguracje - nie mogę kliknąć prawym przyciskiem myszy folderu głównego w panelu Projekt. Ale przynajmniej pozwala mi przeprowadzić wszystkie testy naraz.
źródło
Włącz projekt Pytest for you
źródło