Pregunta

Quiero empezar a escribir pruebas unitarias para mi el código de Python, y el py.prueba marco suena como una apuesta mejor que Python incluido unittest.Así que he añadido un "pruebas" directorio para mi proyecto, y agregó test_sample.py para ello.Ahora quiero configurar PyCharm para ejecutar todas las pruebas en mi "pruebas" del directorio.

PyCharm supuestamente soporta py.prueba en su examen de corredor.Se supone que tienes que ser capaz de crear un run/debug de configuración para ejecutar las pruebas, y PyCharm supuestamente tiene un "crear configuración" del cuadro de diálogo específicamente para el py.prueba.Pero esa es la completa extensión de su documentación sobre el tema, y no puedo encontrar a este presunto cuadro de diálogo en cualquier lugar.

Si yo a la derecha-haga clic en el directorio de Proyecto en la ventana de la herramienta, estoy supone para ver una "Crear <name>"elemento de menú, pero el único elemento de menú que comienza con "Crear" es "Crear Configuración".Bueno, tal vez la documentación está mal, y "Crear la Configuración" suena prometedor.Por desgracia, los únicos dos elementos del submenú son "Unittests en C:\mypath..." y "Doctests en C:\mypath...", ninguno de los cuales se aplica -- estoy usando ni unittest ni doctest.No hay ningún elemento de menú para el py.prueba.

Si puedo abrir mi test_sample.py y haga clic derecho en la ventana del editor, hago la prometida "Crear <name>"elementos de menú:hay "Crear" Unittests en test_sa...'...", seguido por "Ejecutar" Unittests en test_sa...'" y "Debug" Unittests en test_sa...'".Así que, de nuevo, todo es específico para el unittest marco;nada de py.prueba.

Si yo trato de los elementos del menú que dice "unittest", me sale un cuadro de diálogo con opciones para "Nombre", "Tipo", "Pruebas" cuadro de grupo con "Carpeta" y "Patrón" y "secuencia de Comandos" y "Clase" y "Función", etc.Esto suena exactamente igual que lo que está documentado como el cuadro de diálogo para agregar un configuración para Python de la Prueba de Unidad, y no como el "Nombre" y "Prueba a ejecutar" y "palabras clave" de las opciones que se supone que se muestran en la configuración de py.prueba cuadro de diálogo.No hay nada en el interior del cuadro de diálogo para cambiar la cual en el marco de prueba voy a agregar.

Estoy usando PyCharm 1.5.2 en Windows con Python 3.1.3 y pytest 2.0.3.Puedo ejecutar correctamente py.test en mis pruebas desde la línea de comandos, así que no es algo tan simple como pytest no está instalado correctamente.

¿Cómo puedo configurar PyCharm para ejecutar mi py.la prueba de las pruebas?

¿Fue útil?

Solución

Vaya a Archivo | Configuración | Herramientas | Herramientas integradas de Python y cambie el corredor de prueba predeterminado a py.test. Luego obtendrá la opción py.test para crear pruebas en lugar de la más unita.

Otros consejos

Pycharm 2017.3

  1. Preference -> Tools -> Python integrated Tools - Elegir py.test como Default test runner.
  2. Si usas django Preference -> Languages&Frameworks -> Django - Establecer tic en Do not use Django Test runner
  3. Borrar todas las configuraciones de prueba existentes anteriormente de Run/Debug configuration, de lo contrario, las pruebas se ejecutarán con esas configuraciones anteriores.
  4. Para establecer algunos argumentos adicionales predeterminados, actualice la configuración predeterminada de py.test. Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments

Creo que debe usar el elemento de configuración Ejecutar/depuración en la barra de herramientas. Haga clic en él y 'Editar configuraciones' (o alternativamente use el elemento de menú Run-> Editar configuraciones). En la sección 'Valor predeterminado' en el panel izquierdo hay un elemento 'py.test' que creo que es lo que desea.

También descubrí que el manual no coincidía con la interfaz de usuario para esto. Espero haber entendido el problema correctamente y eso ayuda.

Así es como lo hice funcionar con pytest 3.7.2 (instalado a través de Pip) y Pycharms 2017.3:

  1. Ir edit configurations

  1. Agregue una nueva configuración de ejecución y seleccione py.test

  1. En los detalles de configuración de ejecución, debe establecer target=python y el campo sin nombre a continuación para tests. Parece que este es el nombre de su carpeta de prueba. No estoy muy seguro duro. También recomiendo el -s argumento para que si depuras tus pruebas, la consola se comportará correctamente. Sin el argumento, Pytest captura la salida y hace que la consola de depuración sea buggy.

  1. Mi carpeta de pruebas se ve así. Esto está justo debajo de la raíz de mi proyecto (my_project/tests).

  1. Mi foobar_test.py Archivo: (no se necesitan importaciones):
def test_foobar():
    print("hello pytest")
    assert True
  1. Ejecutarlo con el comando de ejecución normal

Está mal documentado para estar seguro. Una vez que obtenga una nueva configuración de los valores predeterminados, estará en el ámbito de ejecutar el script "/aplicaciones/pycharm ce.app/contents/helpers/pycharm/pytestrunner.py". No está documentado y tiene sus propias ideas de argumentos de línea de comandos.

Puedes:

  1. Intenta jugar, revertir el guión y ver si de alguna manera puedes obtener py.test para aceptar argumentos. Podría funcionar; No fue en la primera media hora para mí.
  2. Simplemente ejecute "py.test *.py" desde una consola.

Curiosamente, le resultará difícil encontrar cualquier discusión, ya que JetBrains hace un buen trabajo al bombardear los algoritmos de Google con sus propias páginas.

Encuentre este hilo cuando presione la misma pregunta y encontré la solución PyCharm Version: 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 Resolver mi problema

Estoy usando 2018.2

Ejecuto -> Editar configuraciones ... luego haga clic en el + en la parte superior izquierda del cuadro de diálogo modal. Seleccione "Pruebas de pitón" -> py.test, luego le doy un nombre como "todos pruebas con py.test"

Selecciono el objetivo: el nombre del módulo y pongo el módulo donde están mis pruebas (es decir, 'pruebas' para mí) o el módulo donde todo mi código está si mis pruebas se mezclan con mi código. Esto me estaba tropezando.

Establecí el intérprete de Python.

Establecí el directorio de trabajo en el directorio del proyecto.

Con una configuración especial de Conda Python que incluía la instalación PIP para Py.Test Plus Uso de las especificaciones complementadas (opción -especificación) (para rspec como un lenguaje de resumen de prueba agradable), tuve que hacerlo;

1.Edit la prueba predeterminada para incluir opción = --pec, lo que significa usar el complemento: https://github.com/pchomik/pytest-spec

2.Cree la 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.dele la configuración de prueba 'Unittests'.

4. Ahora, la configuración de prueba predeterminada es py.test con mis hermosas salidas de estilo RSPEC. ¡Me encanta! ¡Gracias a todos!

El documento de PS JetBrains en las 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

Con 2018.3 parece detectar automáticamente que estoy usando Pytest, lo cual es bueno, pero aún no permite correr desde el nivel superior del proyecto. Tuve que correr pytest para cada tests directorio individualmente.

Sin embargo, descubrí que podía elegir una de las configuraciones y editarlo manualmente para ejecutarse en la raíz del proyecto y que esto funcionó. Tengo que elegirlo manualmente en el menú desplegable de configuraciones: no puedo hacer clic derecho en la carpeta raíz en el panel del proyecto. Pero al menos me permite ejecutar todas las pruebas a la vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top