Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. npm test failed

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

npm test failed

Geplant Angeheftet Gesperrt Verschoben Entwicklung
npmnpm errornpm test
12 Beiträge 3 Kommentatoren 831 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von OliverIO
    #3

    hm, da ich die tests bei mir alle einzeln anstosse:

    npm run test:package
    npm run test:unit
    npm run test:integration

    ist das der fehler, der bei mir beim 3.Test (integration) kommt, wenn ich vergesse
    vorher den iobroker zu stoppen. die anderen beiden können mit laufendem iobroker durchgeführt werden.
    Beim integration-test wird ein zusätzlicher iobroker gestartet und das funktioniert natürlich nicht, weil da die selben ports schon alle belegt sind.

    also einfach vor dem test
    iobroker stop eingeben

    ein anpassen meiner testdateien war bei mir nie nötig. sind alle noch standard

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • GrizzelbeeG Offline
      GrizzelbeeG Offline
      Grizzelbee
      Developer
      schrieb am zuletzt editiert von
      #4

      Hallo !

      vielen dank für eure Antworten.

      @OliverIO: das bloße stoppen von ioBroker reicht in meinem Fall offenbar nicht aus. npm test failed immer noch auf die selbe Art.

      @AlCalzone: Eine echte Config kann ich leider nicht hinterlegen, weil da creadentials drin sind. Aber ich gucke mir das Thema Unit-Tets jetzt auf jeden Fall mal genauer an - wollte ich eh.

      viele Grüße
      Grizzelbee

      1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        hm, da ich die tests bei mir alle einzeln anstosse:

        npm run test:package
        npm run test:unit
        npm run test:integration

        ist das der fehler, der bei mir beim 3.Test (integration) kommt, wenn ich vergesse
        vorher den iobroker zu stoppen. die anderen beiden können mit laufendem iobroker durchgeführt werden.
        Beim integration-test wird ein zusätzlicher iobroker gestartet und das funktioniert natürlich nicht, weil da die selben ports schon alle belegt sind.

        also einfach vor dem test
        iobroker stop eingeben

        ein anpassen meiner testdateien war bei mir nie nötig. sind alle noch standard

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #5

        @OliverIO sagte in npm test failed:

        ist das der fehler, der bei mir beim 3.Test (integration) kommt, wenn ich vergesse
        vorher den iobroker zu stoppen

        Je Adapter sollte das nur einmal nötig sein, da für die Tests ein temporärer JS-Controller in einem temporären Verzeichnis installiert wird. Fürs einmalige Einrichten müssen die Standard-Ports (9000, 9001) frei sein. Danach laufen die Tests mit dem umkonfigurierten Controller auf einem anderen Port.

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • GrizzelbeeG Offline
          GrizzelbeeG Offline
          Grizzelbee
          Developer
          schrieb am zuletzt editiert von
          #6

          Guten Morgen!

          Ich brauche bitte noch einmal Hilfe mit diesem Thema. :(
          Ich habe das Problem mit dem Exitcode 11 schon wieder:

            Test the adapter (in a mocked environment)
              √ The adapter starts in normal mode (112ms)
              1) The adapter starts in normal mode
          
          
            37 passing (28s)
            1 failing
          
            1) Test the adapter (in a mocked environment)
                 The adapter starts in normal mode:
               Uncaught Error: Adapter.terminate was called (exit code 11): Invalid Configuration.
                at AdapterConstructor.terminate (node_modules\@iobroker\testing\build\tests\unit\mocks\mockAdapter.js:359:25)
                at Object.invoke (node_modules\sinon\lib\sinon\behavior.js:163:32)
                at AdapterConstructor.functionStub (node_modules\sinon\lib\sinon\stub.js:39:43)
                at Function.invoke (node_modules\sinon\lib\sinon\proxy-invoke.js:47:47)
                at AdapterConstructor.functionStub [as terminate] (node_modules\sinon\lib\sinon\proxy.js:214:26)
                at main (main.js:722:17)
                at adapter.getForeignObject (main.js:102:17)
                at AdapterConstructor.getForeignObject (node_modules\@iobroker\testing\build\tests\unit\mocks\mockAdapter.js:170:17)
                at Object.invoke (node_modules\sinon\lib\sinon\behavior.js:163:32)
                at AdapterConstructor.functionStub (node_modules\sinon\lib\sinon\stub.js:39:43)
                at Function.invoke (node_modules\sinon\lib\sinon\proxy-invoke.js:47:47)
                at AdapterConstructor.functionStub [as getForeignObject] (node_modules\sinon\lib\sinon\proxy.js:214:26)
                at AdapterConstructor.ready (main.js:91:21)
                at Object.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:97:45)
                at Generator.next (<anonymous>)
                at C:\Users\hanjo\WebstormProjects\ioBroker.mielecloudservice\node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:9:71
                at new Promise (<anonymous>)
                at __awaiter (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:5:12)
                at Object.startMockAdapter (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:37:12)
                at Context.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\index.js:66:83)
                at Generator.next (<anonymous>)
                at C:\Users\hanjo\WebstormProjects\ioBroker.mielecloudservice\node_modules\@iobroker\testing\build\tests\unit\index.js:10:71
                at new Promise (<anonymous>)
                at __awaiter (node_modules\@iobroker\testing\build\tests\unit\index.js:6:12)
                at Context.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\index.js:62:20)
          
          
          
          npm ERR! Test failed.  See above for more details.
          

          Ich verstehe aber nicht warum!

          Sowohl in der Integration.js als auch in der unit.js habe den exitcode explizit erlaubt. Das hat ja auch eine ganze Zeit lang problemlos funktioniert.

          610fb274-8bfd-4f14-af0d-2c4b4ce46a85-grafik.png

          5e4e4419-3dc6-4c67-b369-30d8baded102-grafik.png

          Kann da bitte noch einmal jemand drüber gucken und mir einen Tipp geben? Ich stehe gerade echt auf dem Schlauch.

          Vielen Dank im Voraus und viele Grüße
          Grizzelbee

          AlCalzoneA 1 Antwort Letzte Antwort
          0
          • GrizzelbeeG Grizzelbee

            Guten Morgen!

            Ich brauche bitte noch einmal Hilfe mit diesem Thema. :(
            Ich habe das Problem mit dem Exitcode 11 schon wieder:

              Test the adapter (in a mocked environment)
                √ The adapter starts in normal mode (112ms)
                1) The adapter starts in normal mode
            
            
              37 passing (28s)
              1 failing
            
              1) Test the adapter (in a mocked environment)
                   The adapter starts in normal mode:
                 Uncaught Error: Adapter.terminate was called (exit code 11): Invalid Configuration.
                  at AdapterConstructor.terminate (node_modules\@iobroker\testing\build\tests\unit\mocks\mockAdapter.js:359:25)
                  at Object.invoke (node_modules\sinon\lib\sinon\behavior.js:163:32)
                  at AdapterConstructor.functionStub (node_modules\sinon\lib\sinon\stub.js:39:43)
                  at Function.invoke (node_modules\sinon\lib\sinon\proxy-invoke.js:47:47)
                  at AdapterConstructor.functionStub [as terminate] (node_modules\sinon\lib\sinon\proxy.js:214:26)
                  at main (main.js:722:17)
                  at adapter.getForeignObject (main.js:102:17)
                  at AdapterConstructor.getForeignObject (node_modules\@iobroker\testing\build\tests\unit\mocks\mockAdapter.js:170:17)
                  at Object.invoke (node_modules\sinon\lib\sinon\behavior.js:163:32)
                  at AdapterConstructor.functionStub (node_modules\sinon\lib\sinon\stub.js:39:43)
                  at Function.invoke (node_modules\sinon\lib\sinon\proxy-invoke.js:47:47)
                  at AdapterConstructor.functionStub [as getForeignObject] (node_modules\sinon\lib\sinon\proxy.js:214:26)
                  at AdapterConstructor.ready (main.js:91:21)
                  at Object.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:97:45)
                  at Generator.next (<anonymous>)
                  at C:\Users\hanjo\WebstormProjects\ioBroker.mielecloudservice\node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:9:71
                  at new Promise (<anonymous>)
                  at __awaiter (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:5:12)
                  at Object.startMockAdapter (node_modules\@iobroker\testing\build\tests\unit\harness\startMockAdapter.js:37:12)
                  at Context.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\index.js:66:83)
                  at Generator.next (<anonymous>)
                  at C:\Users\hanjo\WebstormProjects\ioBroker.mielecloudservice\node_modules\@iobroker\testing\build\tests\unit\index.js:10:71
                  at new Promise (<anonymous>)
                  at __awaiter (node_modules\@iobroker\testing\build\tests\unit\index.js:6:12)
                  at Context.<anonymous> (node_modules\@iobroker\testing\build\tests\unit\index.js:62:20)
            
            
            
            npm ERR! Test failed.  See above for more details.
            

            Ich verstehe aber nicht warum!

            Sowohl in der Integration.js als auch in der unit.js habe den exitcode explizit erlaubt. Das hat ja auch eine ganze Zeit lang problemlos funktioniert.

            610fb274-8bfd-4f14-af0d-2c4b4ce46a85-grafik.png

            5e4e4419-3dc6-4c67-b369-30d8baded102-grafik.png

            Kann da bitte noch einmal jemand drüber gucken und mir einen Tipp geben? Ich stehe gerade echt auf dem Schlauch.

            Vielen Dank im Voraus und viele Grüße
            Grizzelbee

            AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #7

            @Grizzelbee Hast du mal einen Link zu nem Repo, wo ich das testen könnte?

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            GrizzelbeeG 1 Antwort Letzte Antwort
            0
            • AlCalzoneA AlCalzone

              @Grizzelbee Hast du mal einen Link zu nem Repo, wo ich das testen könnte?

              GrizzelbeeG Offline
              GrizzelbeeG Offline
              Grizzelbee
              Developer
              schrieb am zuletzt editiert von
              #8

              @AlCalzone
              Natürlich! Gerne. :)
              https://github.com/Grizzelbee/ioBroker.mielecloudservice/tree/Development_V1.2.2

              Am besten tatsächlich den 1.2.2 Branch. Dann könnte ich den Fix dort unterbringen und anschließend mergen. Am Ende ist mir aber jede Lösung recht.

              AlCalzoneA 1 Antwort Letzte Antwort
              0
              • GrizzelbeeG Grizzelbee

                @AlCalzone
                Natürlich! Gerne. :)
                https://github.com/Grizzelbee/ioBroker.mielecloudservice/tree/Development_V1.2.2

                Am besten tatsächlich den 1.2.2 Branch. Dann könnte ich den Fix dort unterbringen und anschließend mergen. Am Ende ist mir aber jede Lösung recht.

                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #9

                @Grizzelbee Ehrliche Antwort: Lass den Unit-Test weg, also nicht npm run test:unit als Teil des Testings ausführen.

                Das Problem ist folgendes: deine on("ready")-Methode ruft eine Funktion mit callback auf, und darin wird der Prozess beendet (terminate aufgerufen). In Unit-Tests wird ein beendeter Prozess über Errors abgebildet, das geht im vorliegenden Fall einfach nicht sauber, weil der Error erst nach dem durchgelaufenen Test aufschlägt.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                GrizzelbeeG 1 Antwort Letzte Antwort
                0
                • AlCalzoneA AlCalzone

                  @Grizzelbee Ehrliche Antwort: Lass den Unit-Test weg, also nicht npm run test:unit als Teil des Testings ausführen.

                  Das Problem ist folgendes: deine on("ready")-Methode ruft eine Funktion mit callback auf, und darin wird der Prozess beendet (terminate aufgerufen). In Unit-Tests wird ein beendeter Prozess über Errors abgebildet, das geht im vorliegenden Fall einfach nicht sauber, weil der Error erst nach dem durchgelaufenen Test aufschlägt.

                  GrizzelbeeG Offline
                  GrizzelbeeG Offline
                  Grizzelbee
                  Developer
                  schrieb am zuletzt editiert von
                  #10

                  @AlCalzone
                  Herzlichen Dank für deine Mühe und vor allem die ausführliche Anrtwort - sie hat mich in die Lage versetzt die Lösung zu finden, die ich jetzt implementiert habe:
                  Da es mir nicht richtig behagt die Unittests einfach zu entsorgen (ich möchte die ja schon noch implementieren) und Du gesagt hast, das das eigentliche Problem die Callback in der main() ist (die ich allerdings nicht als solche erkenne) habe ich jetzt die
                  Prüfung der Config, die ja das terminate auslöst aus der main() herausgenommen und in die on(Ready) verlagert.
                  Das bestätigt deine Aussage und die Tests funktierien. :)

                  Danke noch einmal und viele Grüße
                  Grizzelbee

                  AlCalzoneA 1 Antwort Letzte Antwort
                  0
                  • GrizzelbeeG Grizzelbee

                    @AlCalzone
                    Herzlichen Dank für deine Mühe und vor allem die ausführliche Anrtwort - sie hat mich in die Lage versetzt die Lösung zu finden, die ich jetzt implementiert habe:
                    Da es mir nicht richtig behagt die Unittests einfach zu entsorgen (ich möchte die ja schon noch implementieren) und Du gesagt hast, das das eigentliche Problem die Callback in der main() ist (die ich allerdings nicht als solche erkenne) habe ich jetzt die
                    Prüfung der Config, die ja das terminate auslöst aus der main() herausgenommen und in die on(Ready) verlagert.
                    Das bestätigt deine Aussage und die Tests funktierien. :)

                    Danke noch einmal und viele Grüße
                    Grizzelbee

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #11

                    @Grizzelbee wichtiger sind die Integration tests, die einen echten js-controller verwenden. Code verbiegen, um den speziellen Anforderungen der unit tests gerecht zu werden ist imo unnötig.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    GrizzelbeeG 1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA AlCalzone

                      @Grizzelbee wichtiger sind die Integration tests, die einen echten js-controller verwenden. Code verbiegen, um den speziellen Anforderungen der unit tests gerecht zu werden ist imo unnötig.

                      GrizzelbeeG Offline
                      GrizzelbeeG Offline
                      Grizzelbee
                      Developer
                      schrieb am zuletzt editiert von
                      #12

                      @AlCalzone
                      Da gebe ich dir grundsätzlich recht.
                      Im vorliegenden Fall finde ich den Umbau aber sogar besser, weil ich jetzt vor dem Aufruf von Main() prüfe ob überhaupt die Voraussetzungen dafür erfüllt sind. Meiner Meinung nach ist der Code dadurch besser geworden.

                      Viele Grüße
                      Grizzelbee

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      754

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe