2016-06-29 10 views
0

Ich versuche tatsächlich, die Unittests auszuführen, die ich dank Odoos Dokumentation erstellt habe.Odoo [V8] Komponententests

Ich habe mein Modul wie folgt aufgebaut:

module_test 
- __init__.py 
    __openerp.py__ 
... 
- tests 
    __init__.py 
    test_1.py 

Inside 'module_test/Tests/init Py', ich habe "import test_1" Innen ‚module_test/Tests/test_1. py ", ich habe:" Import-Tests + ein Testszenario, das ich geschrieben habe.

Dann starte ich die Befehlszeile Server laufen zu lassen, und ich füge hinzu: '-u module_test --log-level = Test --test aktivieren' das Modul zu aktualisieren und aktivieren die Tests

Die laufen Shell-Returns: "Alle in 0,00s, 0 Abfragen getestet". In der Tat werden keine Tests ausgeführt.

Ich fügte dann einen Syntaxfehler hinzu, so dass die Datei nicht vom Server kompiliert werden kann, aber die Shell den gleichen Satz zurückgegeben hat. Es sieht so aus, als ob die Datei ignoriert wird und der Server versucht nicht einmal, meine Datei zu kompilieren ... Ich verstehe nicht warum?

Ich habe einige Odoo Source-Modul, die 'Verkauf' zum Beispiel überprüft. Ich habe versucht, Verkaufstests auszuführen, Shell gab den gleichen Wert wie zuvor zurück. Ich fügte Syntaxfehler in Verkaufstests hinzu, Shell gab den gleichen Wert erneut und wieder zurück.

Hat jemand eine Vorstellung von diesem unerwarteten Verhalten?

+0

Haben Sie den Namen der Datenbank angeben, während der Server neu gestartet: Für ex, ./odoo.py -d db_name -i module_test --test aktivieren –

+0

Die genaue Befehlszeile lautet: ‚Python/.../openerp-server --config = ... -d db_name -u modul_zu_update --log-level = test --test-enable 'Also ja, ich tue! – Florian

Antwort

1

Sie sollten mit POST_INSTALL Dekorateur für Testklasse versuchen:

Beispiel:

from openerp.tests import common 

@common.post_install(True) 
class TestPost(common.TransactionCase): 

    def test_post_method(self): 
     response = self.env['my_module.my_model'].create_post('hello') 
     self.assertEqual(response['success'], True) 

Um die Tests schneller durchführen, ohne das Modul zu aktualisieren, sollten Sie in der Lage Tests zu laufen ohne

-u modultest

, wenn Sie verwenden

--load = module_test

Ich habe, dass odoo Prüfdokumentation zugeben wirklich schlecht ist. Ich brauchte eine Woche, um herauszufinden, wie Unit Testing in odoo funktioniert.