Quiero empezar a escribir las pruebas unitarias para mi código Python, y los py.test sonidos marco como una mejor opción que Python de liado unittest . Así que agregué un directorio de "pruebas" a mi proyecto y le agregué test_sample.py . Ahora quiero configurar PyCharm para ejecutar todas las pruebas en mi directorio "tests".
PyCharm supuestamente admite py.test en su corredor de prueba. Se supone que debe ser capaz de crear una configuración de ejecución / depuración para ejecutar sus pruebas, y PyCharm supuestamente tiene un cuadro de diálogo "crear configuración" específicamente para py.test . Pero esa es la extensión completa de su documentación sobre el tema, y no puedo encontrar este supuesto cuadro de diálogo en ninguna parte.
Si hago clic con el botón derecho en el directorio en la ventana de la herramienta Proyecto, se supone que debo ver un elemento de menú "Crear <nombre>", pero el único elemento de menú que comienza con "Crear" es "Crear configuración de ejecución". De acuerdo, tal vez la documentación sea incorrecta, y "Crear configuración de ejecución" suena prometedor. Desafortunadamente, los únicos dos elementos en su submenú son "Pruebas de unidad en C: \ mypath ..." y "Pruebas de documento en C: \ mypath ...", ninguno de los cuales se aplica; no estoy usando ni unittest ni doctest. No hay elemento de menú para py.test.
Si abro mi test_sample.py y hago clic con el botón derecho en la ventana del editor, obtengo los elementos prometidos del menú "Crear <nombre>": hay "Crear 'Pruebas unitarias en test_sa ...'...", seguido de "Ejecutar 'Unittests en test_sa ...' "y" Debug 'Unittests en test_sa ...' ". De nuevo, todo es específico del marco de prueba de unidad; nada para py.test.
Si pruebo los elementos del menú que dicen "unittest", aparece un cuadro de diálogo con opciones para "Nombre", "Tipo", un cuadro de grupo "Pruebas" con "Carpeta" y "Patrón" y "Script" y "Clase" "y" Función ", etc. Esto suena exactamente como lo que está documentado como el cuadro de diálogo para agregar una configuración para Python Unit Test , y no como las opciones" Nombre "y" Prueba para ejecutar "y" Palabras clave "que se supone que deben aparecer en la configuración del diálogo py.test . No hay nada dentro del diálogo para cambiar qué marco de prueba estoy agregando.
Estoy usando PyCharm 1.5.2 en Windows con Python 3.1.3 y pytest 2.0.3. Puedo ejecutar con éxito py.test
mis pruebas desde la línea de comandos, por lo que no es algo simple como que pytest no se instale correctamente.
¿Cómo configuro PyCharm para ejecutar mis pruebas py.test?
File | Settings | Tools | Python Integrated Tools
solo está disponible en la Configuración del proyecto en lugar de la Configuración predeterminada en PyCharm 5.PyCharm 2017.3
Preference -> Tools -> Python integrated Tools
- Eligepy.test
comoDefault test runner
.Preference -> Languages&Frameworks -> Django
: active esta casillaDo not use Django Test runner
Run/Debug configuration
, de lo contrario, las pruebas se ejecutarán con esas configuraciones anteriores.Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
fuente
New => Python File
, elKind:
menú desplegable solo ofrece: archivo Python, prueba unitaria, trozo de Python, no Pytest. He buscado en todas las ubicaciones mencionadas en los hilos anteriores. ¿Qué me estoy perdiendo?Creo que debe usar el elemento Ejecutar / Depurar configuración en la barra de herramientas. Haga clic en él y 'Editar configuraciones' (o utilice alternativamente el elemento de menú Ejecutar-> Editar configuraciones). En la sección 'Valores predeterminados' en el panel izquierdo hay un elemento 'py.test' que creo que es lo que quieres.
También encontré que el manual no coincidía con la interfaz de usuario para esto. Espero haber entendido el problema correctamente y eso ayuda.
fuente
Target
serScript ath
y señalarla a la raíz de mi carpeta de pruebasAsí es como lo hice funcionar con pytest
3.7.2
(instalado a través de pip) y pycharms2017.3
:edit configurations
py.test
target
=python
y el campo sin nombre a continuación entests
. Parece que este es el nombre de su carpeta de prueba. No estoy muy seguro. También recomiendo el-s
argumento para que si depura sus pruebas, la consola se comportará correctamente. Sin el argumento, pytest captura la salida y hace que la consola de depuración tenga errores.my_project/tests
).foobar_test.py
archivo: (no se necesitan importaciones):fuente
Está mal documentado para estar seguro. Una vez que agregue una nueva configuración de los valores predeterminados, estará en el reino de ejecutar el script "/ Applications / PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py". No está documentado y tiene sus propias ideas de argumentos de línea de comando.
Usted puede:
Curiosamente, le resultará difícil encontrar una discusión ya que JetBrains hace un buen trabajo al bombardear los algoritmos de Google con sus propias páginas.
fuente
encuentre este hilo cuando toco la misma pregunta y encontré la versión de la solución pycharm: 2017.1.2 vaya a "Preferencias" -> "Herramientas" -> "Herramientas integradas de Python" y configure el corredor de prueba predeterminado desde el panel lateral derecho como py.test resuelve mi problema
fuente
En pycharm 2019.2, simplemente puede hacer esto para ejecutar todas las pruebas:
Para una mayor integración de pytest en pycharm, consulte https://www.jetbrains.com/help/pycharm/pytest.html
fuente
Estoy usando 2018.2
Ejecuto -> Editar configuraciones ... Luego haga clic en + en la esquina superior izquierda del cuadro de diálogo modal. Seleccione "pruebas de python" -> py.test. Luego le doy un nombre como "Todas las pruebas con py.test"
Selecciono Target: nombre del módulo y pongo el módulo donde están mis pruebas (es decir, 'pruebas' para mí) o el módulo donde está todo mi código si mis pruebas se mezclan con mi código. Esto me estaba haciendo tropezar.
Configuré el intérprete de Python.
Configuré el directorio de trabajo en el directorio del proyecto.
fuente
Con una configuración especial de Python de Conda que incluía la instalación de pip para py.test más el uso del complemento Specs (opción --spec) (para Rspec como buen lenguaje de resumen de prueba), tuve que hacerlo;
1.Edite el py.test predeterminado para incluir la opción = --spec, lo que significa usar el complemento: https://github.com/pchomik/pytest-spec
2.Cree una nueva configuración de prueba, usando py.test. Cambie su intérprete de Python para usar ~ / anaconda / envs / su elección de intérpretes, por ejemplo, py27 para mis nombres.
3. Elimine la configuración de prueba 'unittests'.
4.Ahora la configuración de prueba predeterminada es py.test con mis encantadoras salidas de estilo Rspec. ¡Me encanta! ¡Gracias a todos!
El documento de ps Jetbrains sobre configuraciones de ejecución / depuración está aquí: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test
fuente
Con 2018.3 parece detectar automáticamente que estoy usando pytest, lo cual es bueno, pero aún no permite ejecutar desde el nivel superior del proyecto. Tuve que ejecutar
pytest
para cadatests
directorio individualmente.Sin embargo, descubrí que podía elegir una de las configuraciones y editarla manualmente para ejecutarla en la raíz del proyecto y que esto funcionó. Tengo que elegirlo manualmente en el menú desplegable Configuraciones; no puedo hacer clic derecho en la carpeta raíz en el panel Proyecto. Pero al menos me permite ejecutar todas las pruebas a la vez.
fuente
Habilite Pytest para su proyecto
fuente