NEWS
Adapter Integration Test harness.startAdapterAndWait()
-
Ich versuche gerade von testAdapter.js zu integration.js zu migrieren.
(https://github.com/foxthefox/ioBroker.fritzdect/tree/2.0.0-class)Für den Integrationstest habe ich einen Mockserver, der mit dem Adapter live interagiert.
Im "alten" Testlauf wurden die config und der Server im before() eingerichtet.
Danach erfolgte einmalig der Adapterstart.
Für jedes Gerät gab es dann ein it().Im neuen integration.js kann ich den mockserver im before() starten, allerdings scheint es so, daß für jedes it() auch der adapter neu gestartet werden muß (harness.startAdapterAndWait()).
Mit den ganzen debug Meldungen ergibt das ca. 3000 Zeilen im log, schöner fände ich einmal den Adapterstart und dann die it() ausführen.Gibt es da eine Möglichkeit harness.startAdapterAndWait() außerhalb der it() aufzurufen und dann in den it() harness.states.getState zu prüfen?
Gruß
Klaus -
@foxthefox Ich fürchte das ist derzeit nicht vorgesehen. Könntest du deinen Usecase (am besten mit Beispielen) mal im https://github.com/ioBroker/testing Repo als Issue beschreiben? Dann könnte ich mir anschauen wie man das am besten umsetzt.
Wirkliche Integration-Tests außer JS-Controller machen derzeit wohl die wenigsten devs.
-
@AlCalzone
danke für die Rückmeldung. Dann bläh ich mal das log auf, indem ich die ganzen Tests merge.
Hab in GitHub ein Issue mit Code-Strukturen aufgemacht.
Ich hoffe das erklärt es etwas.Bei vielen Adaptern ist es wirklich schwierig eine echten Integrationstest zu machen, da die Gegenseite schwer zu emulierten ist. Aber bei allen Ethernet basierten Kommunikationen sollte so etwas machbar sein (selbst mit einfachen login-mechanismen). Für serielle Schnittstellen bräuchte es eine injection die in das seriell eingreift.
Ich finde es sehr hilfreich. Zudem kann man den mock auch im live environment mit einer neuen adapter Instanz auch noch durchspielen.Gruß
KlausEDIT: nach 13000 log Zeilen wird nichts mehr im debug window angezeigt
man kann nur noch den raw output anschauen.