python - Ejecute pruebas de unidad OpenERP 7 en PyCharm
unit-testing openerp-7 (2)
En la ventana de ejecución / depuración ¿estableciste el valor del campo actual del directorio de trabajo en /home/juliocesar/work/projects/my_project
? Esto ayudaría a PyCharm a buscar las rutas relativas y las importaciones.
También puede intentar dar una ruta completa a sus complementos en la lista de argumentos.
Puedo ejecutar pruebas unitarias de mi complemento OpenERP v7 como se describe aquí .
En PyCharm lo hice agregando una configuración de Python en la configuración de ejecución / depuración de la siguiente manera:
Guión:
/home/juliocesar/work/projects/my_project/openerp-server
Parámetros de script
--addons-path=openerp/addons,openerp/addons/my_addons
--log-level=test
--database=my_project_db_test
--db_host=localhost
--db_user=test
--db_password=123
--init=my_addon
--test-enable
--stop-after-init
Se ejecuta correctamente pero muestra un resultado estándar en formato de registro de texto como el siguiente:
2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: module my_addon: executing 1 `fast_suite` and/or `checks` sub-modules
2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: test_change_old_received_to_contingency (openerp.addons.my_addon.tests.test_my_addon.TestMyItems)
2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: ` Test patch to change old received status to contingency.
2015-04-24 13:47:55,110 12340 TEST my_project openerp.modules.module: Ran 1 tests in 0.006s
2015-04-24 13:47:55,110 12340 TEST my_project openerp.modules.module: OK
donde muestra los resultados de ejecutar la siguiente prueba que creé en add-on my_addon
del proyecto my_project
, en /home/juliocesar/work/projects/my_project/openerp/addons/my_addon/tests/test_my_addon.py
:
from openerp.tests.common import TransactionCase
import unittest2
class TestMyItems(TransactionCase):
def test_change_old_received_to_contingency(self):
"""Test patch to change old received status to contingency."""
self.assertTrue(True)
if __name__ == ''__main__'':
unittest2.main()
Lo que quiero es usar las pruebas de Python -> Configuración Unittest para mostrar las pruebas de salida con iconos rojos / verdes y la interfaz PyCharm para los resultados de las pruebas.
La configuración Unittest requiere el archivo de script donde se encuentran las pruebas, si especifico el archivo, PyCharm encuentra todas las pruebas en el archivo pero da errores porque la base de datos (y otros parámetros como openerp-server
y los parámetros restantes especificados arriba para ejecutar pruebas de OpenERP ) no está configurado:
Este es el resultado de ejecutar esta configuración:
/usr/bin/python2.7 /home/juliocesar/apps/pycharm/helpers/pycharm/utrunner.py /home/juliocesar/work/projects/my_project/openerp/addons/my_addon/tests/ false
Testing started at 09:38 AM ...
No handlers could be found for logger "openerp.sql_db"
Process finished with exit code 0
Error
Traceback (most recent call last):
File "/home/juliocesar/work/projects/my_project/openerp/tests/common.py", line 94, in setUp
TransactionCase.cr = self.cursor()
File "/home/juliocesar/work/projects/my_project/openerp/tests/common.py", line 55, in cursor
return openerp.modules.registry.RegistryManager.get(DB).db.cursor()
File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 193, in get
update_module)
File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 209, in new
registry = Registry(db_name)
File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 76, in __init__
cr = self.db.cursor()
File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 484, in cursor
return Cursor(self._pool, self.dbname, serialized=serialized)
File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 182, in __init__
self._cnx = pool.borrow(dsn(dbname))
File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 377, in _locked
return fun(self, *args, **kwargs)
File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 440, in borrow
result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async)
OperationalError: FATAL: database "False" does not exist
Entonces, ¿cómo especificar los parámetros necesarios para ejecutar OpenERP v7 unittest con una configuración de prueba de PyCharm?
Usé PyCharm 4.0.6 Build # PY-139.1659, pero tampoco funciona en PyCharm 5.
puede depurar usando cmd en windows ingrese con cmd en la carpeta odoo.exe C: / Archivos de programa (x86) / Odoo 8.0-20150719 / server y ejecute este comando
odoo --log-level=debug
o terminal en Linux ingrese con la terminal en el archivo odoo.py (/ usr / bin /) y ejecute este comando
python odoo.py --log-level=debug
cinta ctrl + z o ctrl + c para desactivar un registro.
encontrará un archivo (openerp-server.log) en / var / log / odoo /