Posso eseguire test di unità del mio componente aggiuntivo OpenERP v7 come descritto here.Esegui OpenERP 7 unittests in PyCharm
In PyCharm l'ho fatto con l'aggiunta di una configurazione di Python in Run/Debug Configurazione come segue:
Script:
/home/juliocesar/work/projects/my_project/openerp-server
Scrittura parametri:
--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
Esso viene eseguito correttamente, ma mostra un output standard in formato log di testo simile al seguente:
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
dove mostra i risultati di eseguire il seguente test che ho creato in add-on my_addon
progetto my_project
, in /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()
Quello che voglio è quello di utilizzare i test Python -> configurazione unittest per visualizzare l'output test con/icone rosse e interfaccia PyCharm per i risultati delle prove.
configurazione unittest richiede il file di script in cui si trovano le prove, se a specificare il file, PyCharm trova tutti i test nel file, ma dà errori perché il database (e di altri parametri come openerp-server
sceneggiatura e dei parametri di riposo specificato in precedenza per eseguire test OpenERP) non è configurato:
questo è il risultato dell'esecuzione di questa configurazione:
01.235.164,106174 millions/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
Quindi, come specificare i parametri richiesti per eseguire OpenERP v7 unittest con una configurazione di prova PyCharm?
ho usato PyCharm 4.0.6 Build # PY-139,1659, ma lo fa anche senza opere in PyCharm 5.
Penso che sarebbe utile se si aggiunge esattamente ciò che i messaggi di errore che hai, anche un bene per specificare quale versione di PyCharm che stai utilizzando. Per esempio la documentazione per la configurazione di PyCharm 4.0.4 è qui https://www.jetbrains.com/pycharm/help/run-debug-configuration-python-unit-test.html#d388270e118 Come un pensiero rapido, non lo faccio pensare che la connessione al database sia qualcosa che devi configurare all'interno di PyCharm, e cosa intendi con "altri parametri" non è chiaro neanche. Potresti iniziare a far cadere i voti se non li chiarisci. – rineez
Grazie, ho aggiunto informazioni rilevanti per chiarirlo – juliocesar
Sei stato in grado di risolvere da solo? – rineez