Domanda

Voglio iniziare a scrivere test unitari per il mio codice Python e il py.test Framework suona come una scommessa migliore di Python in bundle unittest. Quindi ho aggiunto una directory "test" al mio progetto e ho aggiunto test_sample.py ad esso. Ora voglio configurare Pycharm per eseguire tutti i test nella mia directory "Test".

Pycharm presumibilmente Supporta py.test Nel suo test runner. Dovresti essere in grado di farlo Crea una configurazione RUN/DEBUG Per eseguire i test e Pycharm ha presumibilmente un Finestra di dialogo "Crea configurazione" specificamente per py.test. Ma questa è la completa estensione della loro documentazione sull'argomento e non riesco a trovare questa presunta finestra di dialogo da nessuna parte.

Se faccio clic con il tasto destro della directory nella finestra dello strumento del progetto, lo sono ipotetico Per vedere un "Creau003Cname> "Voce di menu, ma l'unica voce di menu che inizia con" Crea "è" Crea la configurazione ". Okay, forse la documentazione è semplicemente sbagliata e" Crea run Configuration "sembra promettente. Sfortunatamente, le uniche due elementi nel suo sottomenu sono "Unittests in C: mypath ..." e "Doctest in C: mypath ...", nessuno dei quali si applica - non sto usando né unittest né dottore. Non ci sono voci di menu per py.test.

Se apro il mio test_sample.py e fai clic con il pulsante destro del mouse nella finestra dell'editor, ottengo il promesso "Creau003Cname> "Voci di menu: ci sono" Crea "unittest in test_sa ...'...", seguito da "run" unittest in test_sa ... "e" debug "unittest in test_sa ..." ". Quindi, è di nuovo, è di nuovo, è di nuovo tutto specifico per il framework unittest; niente per py.test.

Se provo le voci di menu che dicono "unittest", ottengo una finestra di dialogo con opzioni per "nome", "tipo", una casella di gruppo "test" con "cartella" e "pattern" e "script" e "classe "e" funzione ", ecc. Questo suona esattamente come ciò che è documentato come dialogo per aggiungere un Configurazione per il test dell'unità Python, e non come le opzioni "Nome" e "Test to Esegne" e "Parole chiave" che dovrebbero apparire nel Configurazione per py.test dialogo. Non c'è nulla all'interno della finestra di dialogo per cambiare quale framework di prova sto aggiungendo.

Sto usando Pycharm 1.5.2 su Windows con Python 3.1.3 e Pytest 2.0.3. Posso correre con successo py.test Nei miei test dalla riga di comando, quindi non è qualcosa di semplice come Pytest che non viene installato correttamente.

Come posso configurare Pycharm per eseguire i miei test Py.Test?

È stato utile?

Soluzione

Si prega di andare al file | Impostazioni | Strumenti | Strumenti integrati Python e modifica il test Runner predefinito su Py.Test. Quindi otterrai l'opzione py.test per creare test anziché unittest.

Altri suggerimenti

Pycharm 2017.3

  1. Preference -> Tools -> Python integrated Tools - Scegliere py.test come Default test runner.
  2. Se usi Django Preference -> Languages&Frameworks -> Django - Imposta il segno di spunta Do not use Django Test runner
  3. Cancella tutte le configurazioni di test precedentemente esistenti da Run/Debug configuration, altrimenti verranno eseguiti i test con quelle configurazioni più vecchie.
  4. Per impostare alcuni argomenti aggiuntivi predefiniti Aggiorna Py.test Configurazione predefinita. Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments

Penso che tu debba utilizzare l'elemento di configurazione RUN/DEBUG sulla barra degli strumenti. Fare clic su di esso e "Modifica configurazioni" (o in alternativa utilizzare la voce di menu Run-> Modifica configurazioni). Nella sezione "impostazione predefinita" nel riquadro sinistro c'è un elemento "py.test" che penso sia quello che vuoi.

Ho anche scoperto che il manuale non corrispondeva all'interfaccia utente per questo. Spero di aver capito correttamente il problema e questo aiuta.

Ecco come l'ho fatto funzionare con Pytest 3.7.2 (installato tramite pip) e pycharms 2017.3:

  1. Vai a edit configurations

  1. Aggiungi una nuova configurazione di corsa e seleziona py.test

  1. Nei dettagli di configurazione esegui, è necessario impostare target=python e il campo senza nome sotto a tests. Sembra che questo sia il nome della cartella di prova. Non troppo sicuro. Consiglio anche il -s Argomento in modo che se esegui il debug dei test, la console si comporterà correttamente. Senza l'argomento Pytest cattura l'output e rende il buggy console di debug.

  1. La mia cartella test sembra così. Questo è appena sotto la radice del mio progetto (my_project/tests).

  1. Mio foobar_test.py File: (Nessuna importazione necessaria):
def test_foobar():
    print("hello pytest")
    assert True
  1. Eseguilo con il comando di esecuzione normale

È scarsamente documentato per essere sicuro. Dopo aver ricevuto una nuova configurazione dalle impostazioni predefinite, si troverà nel regno di eseguire lo script "/Applications/Pycharm CE.App/contents/helpers/pycharm/pytestrunner.py". Non è documentato e ha le sue idee di argomenti di comando.

Puoi:

  1. Prova a giocare, invertire la sceneggiatura e vedi se riesci in qualche modo a far accettare argomenti. Potrebbe funzionare; Non è stato nella prima mezz'ora per me.
  2. Basta eseguire "py.test *.py" da una console.

Stranamente, troverai difficile trovare qualsiasi discussione poiché JetBrains fa un buon lavoro nel bombardamento di algoritmi di Google con le sue pagine.

Trova questo thread quando ho raggiunto la stessa domanda e ho trovato la soluzione di Pycharm versione: 2017.1.2 Vai su "Preferenze" -> "Strumenti" -> "Strumenti integrati Python" e imposta il test di prova predefinito dal pannello laterale destro come py.test come py.test come py.test Risolvi il mio problema

Sto usando il 2018.2

Eseguo -> Modifica configurazioni ... quindi fai clic su + nella parte superiore sinistra della finestra di dialogo modale. Seleziona "Python Test" -> Py.test Quindi do un nome come "All Test with Py.test"

Selezzo target: nome del modulo e inserisco il modulo in cui sono i miei test (cioè i "test" per me) o il modulo in cui è tutto il mio codice se i miei test sono miscelati con il mio codice. Questo mi stava inciampando.

Ho impostato l'interprete di Python.

Ho impostato la directory di lavoro nella directory del progetto.

Con una configurazione speciale di Conda Python che includeva l'installazione PIP per Py.Test Plus Utilizzo del componente aggiuntivo (opzione - -Spec) (per RSPSPEC come un bel linguaggio di riepilogo del test), ho dovuto fare;

1.Edit il py.test predefinito per includere opzione = - -Spec, che significa utilizzare il plug -in: https://github.com/pchomik/pytest-pec

2. Creare una nuova configurazione del test, usando py.test. Cambia il suo interprete di Python per usare ~/Anaconda/Envs/La tua scelta degli interpreti, ad esempio Py27 per i miei nomi.

3.Delete la configurazione del test "unittest".

4.Now La configurazione di prova predefinita è py.test con le mie adorabili uscite in stile RSPEC. Lo adoro! Grazie a tutti!

Doc di PS JetBrains su configs run/debug è qui: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test

Con il 2018.3 sembra rilevare automaticamente che sto usando Pytest, il che è bello, ma non consente ancora di correre dal livello superiore del progetto. Ho dovuto correre pytest per ciascuno tests directory individualmente.

Tuttavia, ho scoperto che avrei potuto scegliere una delle configurazioni e modificarla manualmente per eseguire la radice del progetto e che questo funzionava. Devo sceglierlo manualmente nel menu a discesa delle configurazioni - non riesco a fare clic con il tasto destro sulla cartella root nel riquadro Project. Ma almeno mi permette di eseguire tutti i test contemporaneamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top