vrijdag 12 oktober 2012

YAML testing OpenERP

Ik dacht laat ik eens een module nemen, deze dropen in mijn 6.1 OpenERP addons folder en er mee aan de slag gaan. Na enkele verbeteringen te hebben gedaan leek het me geschikte opportuniteit om deYAML test scenario's voor versie 6.0 (and up) te gebruiken.

Na wat trial en error zoekwerk ben ik tot een werkende oplossing gekomen.






Het is vrij eenvoudig om deze functionaliteit te gebruiken. Je plaatst in je __openerp__.py file de volgende tag:
'demo_xml': ['test/hr_car_testing.yml'],
Zoals je kan zien bevat de demo_xml tag het path en de de naam van de YAML file.

De volgende stap houd in dat je de server opstart met het volgende commando.

python openerp-server.py -i hr_car --log-level=test

Als de server is opgestart en je bent ingelogd zou de output van de testen te zien moeten zijn in je logfile of de stdout. Afhankelijk van hoe je de YAML test hebt geschreven krijg je ongeveer volgende output.

2012-10-13 05:55:02,756 5524 INFO sandbox openerp.modules.loading: module hr_car: loading test/hr_car_testing.yml  
2012-10-13 05:55:02,767 5524 TEST sandbox openerp.tools.yaml_import: Creating !record {model: hr.car.make, id: new_make}:
 with {'name': 'testingmake11111111'}
2012-10-13 05:55:02,776 5524 TEST sandbox openerp.tools.yaml_import: Creating !record {model: hr.car.model, id: new_model}:
 with {'make_id': 'new_make', 'name': 'testingmodel'}
Om het plaatje volledig te maken zet ik hier ook de YAML file die ik heb gebruikt om dit voorbeeld uit te werken. Het is ver van af omdat het in principe crud operaties zou moeten omvatten van de objecten binnen de module. OPGELET voor de spatie indentatie van YAML syntax, kan je wel eens de mist mee ingaan.


#HR_CAR test testing scenario
-
 !record {model: hr.car.make, id: new_make}:
  name: testingmake11111111
-
 !record {model: hr.car.model, id: new_model}:
  name: "testingmodel"
  make_id: new_make

Referenties :
http://doc.openerp.com/v6.0/developer/5_16_data_serialization/yaml_serialization.html#writing-yaml-tests
http://doc.openerp.com/v6.0/contribute/15_guidelines/coding_guidelines_testing.html#tests-are-run-on-the-server-side



Geen opmerkingen:

Een reactie posten