2011-03-09 11 views
5

He estado usando Pycharm para escribir un servidor.Pycharm no reconoce puntos de corte en archivos que no son de prueba

Tengo algunos unittest utilizando la biblioteca 'unittest' de Python.

Estaba ejecutando las pruebas y todo estaba bien, podía establecer puntos de interrupción en cualquier parte del código. Ayer comencé a ejecutar el servidor a través del depurador. Descubrí que mis puntos de interrupción ya no funcionaban. Visualmente, todavía están allí, se ven/se comportan en todos los sentidos como un punto de interrupción de trabajo, excepto que en realidad no hacen que la ejecución se rompa, simplemente se ignoran (como si estuvieran deshabilitados).

Hoy cuando traté de ejecutar pruebas nuevamente, estoy observando el mismo comportamiento en todos los archivos excepto en los los que están en mi biblioteca de prueba.

Intenté un experimento, agregando un nuevo archivo al código del servidor con una función simple en él. Punto de interrupción en la función, función de llamada de prueba, prueba de ejecución a través de depuración, sin interrupción. Copié el archivo en mi directorio 'tests', restablecí el punto de interrupción en la función, cambié la declaración de 'importación' para apuntar a la nueva ubicación del archivo de prueba, realicé pruebas. Ahora se detiene en el punto de interrupción en el archivo.

He intentado todos los "controles de cordura" básicos que se me ocurren: salir de PyCharm. Reinstalar PyCharm. Eliminar las preferencias de PyCharm. Reiniciar. Todavía obtengo exactamente el mismo comportamiento.

Por lo que vale, 'ejecutar al cursor' presenta el mismo problema: en cualquier cosa que no sea el archivo de prueba, simplemente se ejecuta sin parar.

Lo que es realmente una locura es que todo estaba funcionando bien ayer. Al menos los puntos de interrupción estaban funcionando cuando estaba ejecutando pruebas.

Respuesta

2

Algo así solucioné esto yo mismo.

En Ejecutar-> Editar configuraciones, seleccionó la configuración para probar.

En "Pruebas: Carpeta:", la configuración existente era foo/bar/baz/my_project/tests.

Con esta configuración tuve el problema: los puntos de interrupción en el trabajo de 'pruebas', los puntos de corte en el resto de 'mi_proyecto' no.

Lo cambié a foo/bar/baz/my_project. Ahora todo funciona como se espera, los puntos de interrupción en cualquier lugar funcionan bien.

Otras personas en mi proyecto tienen cosas que funcionan bien con la configuración original: apuntan solo al directorio 'pruebas' y pueden establecer puntos de interrupción en cualquier lugar.

No estoy seguro de por qué soy especial y esto no funciona para mí, pero tengo una solución y estoy cansado de luchar con ella así que ... buenos momentos.

1

Hey Doug, tres cosas que pueden o no pueden ser útiles:

  1. que he tenido el mismo problema un par de veces de vuelta con los anteriores 1.0 y 1.0.1 comunicados con configuraciones de depuración guardados - - la recreación de la configuración de depuración solucionó el problema. Toca madera, pero no he tenido el problema en 1.1.1. No he probado el 1.2 lanzamiento candidato.
  2. Un colega tenía un problema similar, pero accidentalmente estableció sus puntos de interrupción en una copia externa del archivo, no lo que PyCharm estaba ejecutando.
  3. Por último, mi experiencia es que la gente de JetBrains ha sido bastante buena respondiendo a los problemas si ping their user forum y/o submit a YouTrack bug.

Cheers, Rob

Cuestiones relacionadas