Autor Thema: Unit Test?  (Gelesen 11827 mal)

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #60 am: 03 Juni 2020, 13:18:29 »
Das sieht alles ziemlich gut aus. Also im Sinne von: Da findet man einiges.


# Looks like you failed 70 tests of 566.
...
# Looks like you failed 58 tests of 566.
...
# Looks like you failed 43 tests of 566.
...
# Looks like you failed 36 tests of 566.

Nagut...  Interesse an den Ergebnissen? Oder soll ich den betreffenden Modulen erstmal ein Morphium-Pflaster verpassen?

Also so Sachen wie

2020.06.03 13:09:00 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/({ <-- HERE (?:[^{}]++|(?1))*})/ at ./FHEM/70_MEDIAPORTAL.pm line 570.
2020.06.03 13:09:00 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/[ \r\n]*({ <-- HERE (?:[^{}]++|(?1))*})[ \r\n]*/ at ./FHEM/70_MEDIAPORTAL.pm line 576.

oder

2020.06.03 13:09:00 1: PERL WARNING: Subroutine dq redefined at ./FHEM/70_PIONEERAVR.pm line 4138.

2020.06.03 13:08:59 1: PERL WARNING: main::OBIS_decodeTL() called too early to check prototype at ./FHEM/47_OBIS.pm line 1140.

2020.06.03 13:08:59 1: PERL WARNING: Constant subroutine main::SHIFT redefined at /opt/perlbrew/perls/perl-5.30.1/lib/5.30.1/constant.pm line 171.
(37_harmony.pm)

Ein Problem habe ich bei 21_OWTEMP.pm

'Can't locate OW.pm in @INC (you may need to install the OW module)

und keine Ahnung wo ich OW.pm finden könnte. Weder gibt es eine Datei OW.pm in FHEM (oder auf CPAN), noch finde ich ein "package OW" in irgendeiner Datei erwähnt.

Naja und dann och so ca. 30 weitere Module die Sperenzchen machen.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24676
Antw:Unit Test?
« Antwort #61 am: 03 Juni 2020, 14:52:07 »
Zitat
Nagut...  Interesse an den Ergebnissen?
Ich faende es sinnvoll die Ergebnisse hier zu zeigen, dann koennte der Maintainer entscheiden, ob er was fixen will oder nicht.
Zu OWTEMP steht in Wiki was von veraltet/abzuraten, aber wenn es gar nicht funktioniert, dann sollte es aus dem FHEM Verzeichnis entfernt werden.

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #62 am: 03 Juni 2020, 15:54:26 »
Ich faende es sinnvoll die Ergebnisse hier zu zeigen, dann koennte der Maintainer entscheiden, ob er was fixen will oder nicht.
Zu OWTEMP steht in Wiki was von veraltet/abzuraten, aber wenn es gar nicht funktioniert, dann sollte es aus dem FHEM Verzeichnis entfernt werden.

Ok. Wie gesagt - es lädt nicht, weil es ein OW.pm nicht finden kann. Ich kann's auch nicht finden, habe aber noch nicht "semantisch recherchiert".

zusätzlich zu dem oben gesagten sehe ich noch:

etliche "Prototype mismatch" Meldungen. Die würde man in FHEM nicht sehen, weil dort die Prototypen noch sind und es fällt nicht auf wenn ein Prototyp zweimal gleich definiert wird. Und genau deswegen ist das ein Problem, zeigt es doch Duplikate:
(Achtung, die Zeilennummern stimmen so nicht)


2020.06.03 13:08:52 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/00_OWX.pm line 52.
2020.06.03 13:08:53 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/00_OWX_ASYNC.pm line 94.
2020.06.03 13:08:53 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at FHEM/Color.pm line 11.
2020.06.03 13:08:53 1: PERL WARNING: sort (...) interpreted as function at ./FHEM/10_CUL_HM.pm line 5385.

2020.06.03 13:08:54 1: reload: Error:Modul 20_OWFS deactivated:
 Can't locate OW.pm in @INC (you may need to install the OW module)
=> gleiches Problem wie bei OWTEMP

2020.06.03 13:08:54 1: PERL WARNING: "my" variable $list masks earlier declaration in same scope at ./FHEM/21_N4HMODULE.pm line 1468.
2020.06.03 13:08:55 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWAD.pm line 49.
2020.06.03 13:08:56 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWCOUNT.pm line 48.
2020.06.03 13:08:56 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWID.pm line 50.
2020.06.03 13:08:57 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWLCD.pm line 79.


2020.06.03 13:08:58 1: reload: Error:Modul 21_OWSWITCH deactivated:
 syntax error at ./FHEM/21_OWSWITCH.pm line 1869, near "= ;"
syntax error at ./FHEM/21_OWSWITCH.pm line 1892, near "= ;"


2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWTHERM.pm line 46.
2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::AttrVal: none vs ($$$) at ./FHEM/21_OWTHERM.pm line 47.

2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_OWVAR.pm line 47.
2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::AttrVal: none vs ($$$) at ./FHEM/21_OWVAR.pm line 48.

2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/21_SONOSPLAYER.pm line 58.
2020.06.03 13:08:58 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/30_tradfri.pm line 29.
2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/33_readingsGroup.pm line 32.
2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/33_readingsHistory.pm line 31.
2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/33_readingsProxy.pm line 33.

2020.06.03 13:08:59 1: PERL WARNING: Smartmatch is experimental at ./FHEM/36_EleroDrive.pm line 271.
2020.06.03 13:08:59 1: PERL WARNING: Smartmatch is experimental at ./FHEM/36_EleroSwitch.pm line 225.

2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/39_alexa.pm line 25, <DATA> line 1.
2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/39_gassistant.pm line 24.
2020.06.03 13:08:59 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/39_siri.pm line 14.

2020.06.03 13:08:59 1: PERL WARNING: Smartmatch is experimental at ./FHEM/45_Plugwise.pm line 949.

2020.06.03 13:08:59 1: PERL WARNING: Smartmatch is experimental at ./FHEM/47_OBIS.pm line 605.
2020.06.03 13:08:59 1: PERL WARNING: main::OBIS_decodeTL() called too early to check prototype at ./FHEM/47_OBIS.pm line 1140.

2020.06.03 13:08:59 1: PERL WARNING: %defptr{...} in scalar context better written as $defptr{...} at ./FHEM/49_Arlo.pm line 916.

2020.06.03 13:09:00 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/98_dewpoint.pm line 32.

2020.06.03 13:09:00 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 307.
2020.06.03 13:09:00 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 335.
2020.06.03 13:09:00 1: PERL WARNING: Useless use of hash element in void context at ./FHEM/50_WS300.pm line 452.

2020.06.03 13:09:00 1: PERL WARNING: Smartmatch is experimental at ./FHEM/56_POKEYS.pm line 324

2020.06.03 13:09:00 1: reload: Error:Modul 59_OPENWEATHER deactivated:
 Unrecognized character \xC3; marked by <-- HERE after <-- HERE near column 1 at ./FHEM/59_OPENWEATHER.pm line 1.

2020.06.03 13:09:00 1: PERL WARNING: Subroutine getIP redefined at ./FHEM/70_SamsungAV.pm line 1445.
2020.06.03 13:09:00 1: PERL WARNING: Subroutine getIP_old redefined at ./FHEM/70_SamsungAV.pm line 1453.
2020.06.03 13:09:00 1: PERL WARNING: Subroutine getMAC4IP redefined at ./FHEM/70_SamsungAV.pm line 1463.

2020.06.03 13:09:01 1: PERL WARNING: Smartmatch is experimental at ./FHEM/71_YAMAHA_MC.pm line 6215.
2020.06.03 13:09:01 1: PERL WARNING: Smartmatch is experimental at ./FHEM/71_YAMAHA_MC.pm line 6456

2020.06.03 13:09:01 1: PERL WARNING: Prototype mismatch: sub main::Log3: none vs ($$$) at ./FHEM/74_UnifiVideo.pm line 18.

2020.06.03 13:09:01 1: PERL WARNING: Smartmatch is experimental at ./FHEM/77_SMASTP.pm line 200.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 93.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 102.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 113.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 117.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 120.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 123.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 127.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 129.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/77_SMASTP.pm line 131.
2020.06.03 13:09:01 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/77_SMASTP.pm line 133.

2020.06.03 13:09:01 1: reload: Error:Modul 88_HMCCURPC deactivated:
 Attempt to reload threads.pm aborted.
Compilation failed in require at ./FHEM/88_HMCCURPC.pm line 28.
BEGIN failed--compilation aborted at ./FHEM/88_HMCCURPC.pm line 28.

2020.06.03 13:09:01 1: PERL WARNING: Useless use of private variable in void context at ./FHEM/93_DbLog.pm line 865.

2020.06.03 13:09:02 1: PERL WARNING: Scalar value @args[0] better written as $args[0] at ./FHEM/95_PostMe.pm line 1093.
2020.06.03 13:09:02 1: PERL WARNING: Scalar value @args[0] better written as $args[0] at ./FHEM/95_PostMe.pm line 1173.

2020.06.03 13:09:02 1: PERL WARNING: Subroutine YAAHM_restore redefined at ./FHEM/95_YAAHM.pm line 1273.
2020.06.03 13:09:02 1: PERL WARNING: Subroutine YAAHM_setWeeklyTime redefined at ./FHEM/95_YAAHM.pm line 2557.

2020.06.03 13:09:02 1: PERL WARNING: main::Snapcast_setClient() called too early to check prototype at ./FHEM/96_Snapcast.pm line 635.

Die anderen - teils fatalen - Fehler will ich erstmal checken ob das nicht HoBo-spezifisch ist.

24_SI_Liquid_Check.pm ist nicht Teil vom FHEM SVN, kann man also hier erstmal ignorieren.

2020.06.03 13:08:58 1: PERL WARNING: Scalar value @adays[...] better written as $adays[...] at ./FHEM/24_SI_Liquid_Check.pm line 368.
2020.06.03 13:08:58 1: PERL WARNING: Scalar value @amonth[...] better written as $amonth[...] at ./FHEM/24_SI_Liquid_Check.pm line 368.
2020.06.03 13:08:58 1: PERL WARNING: Scalar value @adays[...] better written as $adays[...] at ./FHEM/24_SI_Liquid_Check.pm line 373.
2020.06.03 13:08:58 1: PERL WARNING: Scalar value @amonth[...] better written as $amonth[...] at ./FHEM/24_SI_Liquid_Check.pm line 373.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Online zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3985
    • HMCCU
Antw:Unit Test?
« Antwort #63 am: 03 Juni 2020, 19:27:45 »
Ich versuche, 88_HMCCURPC.pm aus dem SVN zu löschen. Mal sehen, ob ich das darf.
Jedenfalls ist das Modul obsolet und wurde durch 88_HMCCURPCPROC.pm ersetzt.
2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4539
Antw:Unit Test?
« Antwort #64 am: 03 Juni 2020, 20:02:58 »
Ok. Wie gesagt - es lädt nicht, weil es ein OW.pm nicht finden kann. Ich kann's auch nicht finden, habe aber noch nicht "semantisch recherchiert".
du bist nicht der erste der das sucht -> https://forum.fhem.de/index.php?topic=39129.0
war wohl 2015 Betandteil irgend eines owfs Packets, vllt sollte man diese ganzen OW Leichen einfach löschen oder zumindest nach contrib verschieben,
Norbert (ntruchsess) ist doch eh schon jahrelang nicht mehr aktiv
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24676
Antw:Unit Test?
« Antwort #65 am: 03 Juni 2020, 20:59:36 »
Zitat
vllt sollte man diese ganzen OW Leichen einfach löschen
Gerne, aber das soll bitte jemand machen, der weiss, was alles dazugehoert.

Offline Ralf9

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3857
Antw:Unit Test?
« Antwort #66 am: 04 Juni 2020, 00:40:40 »
Anderweitiges Durchwühlen brachte:

2020.06.02 19:37:13 0: Bareword "NULL" not allowed while "strict subs" in use at ./FHEM/00_SIGNALduino.pm line 4982.

->

            my $osv2byte = "";
            $osv2byte = NULL;
            $osv2byte = substr( $bitData, $idx, 16 );

Hallo,

ich habe mir einen fork vom Signalduino Modul erstellt und diesen für meine Bedürfnisse angepasst und erweitert.
Im Gegensatz von einigen hier, die berufsmäßig programmieren, mache ich das programmieren Hobbymäßig, ich habe es mir aus dem Internet selbst beigebracht.
So wie einige professionelle Programmierer hier Ihre Module umgeschrieben und optimiert haben, habe ich mit meinen Kenntnissen probleme die Funktionsweise zu verstehen.
Sidey, z.B. ist gerade dabei das 00_SIGNALduino zu optimieren und umzuschreiben.
Die Optimierungen und der Code für die Unit Tests sind mittlerweile so umfangreich, daß ich nicht mehr in der Lage bin den kompletten Code nachzuvollziehen und zu verstehen.
Der Aufwand der für Unit Tests gemacht wird ist mir zu heftig, ich teste lieber auf herkömmliche Weise.

Wenn ich fragen zum Verbessern und Optimieren meines geforkten 00_SIGNALduino Moduls habe, darf ich hier in der Perlecke auch fragen, wenn ich kein maintainer bin?
Falls ja, in welches Thema passt dies am Besten oder soll ich hier ein neues Thema aufmachen?   

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2594
Antw:Unit Test?
« Antwort #67 am: 04 Juni 2020, 08:05:28 »



2020.06.02 19:37:13 0: Bareword "NULL" not allowed while "strict subs" in use at ./FHEM/00_SIGNALduino.pm line 4982.

Das kann doch noch nie funktioniert haben - oder?

Ich glaube auch, das hat nie den Effekt gebracht den (vermutlich ich) mir damals erhofft hatte.

Dieser und viele andere Fehler sind auch schon im development Branch behoben:


https://github.com/RFD-FHEM/RFFHEM/blob/dev-r35_xFSK/FHEM/lib/SD_Protocols.pm

Klingt jetzt komisch, aber auf Basis vom Master macht es derzeit keinen Sinn patches oder PRs zu eröffnen, da bereits vieles im development Branch umgebaut wurde.

Grüße Sidey

Gesendet von meinem Moto Z (2) mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #68 am: 04 Juni 2020, 09:00:11 »
Klingt jetzt komisch, aber auf Basis vom Master macht es derzeit keinen Sinn patches oder PRs zu eröffnen, da bereits vieles im development Branch umgebaut wurde.

Ist schon ok, aber dann vielleicht zügig an dev -> master planen. Nur so fällt der neue Code in die CI Mühle.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #69 am: 04 Juni 2020, 09:47:19 »
Wenn ich fragen zum Verbessern und Optimieren meines geforkten 00_SIGNALduino Moduls habe, darf ich hier in der Perlecke auch fragen, wenn ich kein maintainer bin?

Selbstverständlich. Was mich betrifft, so ist das FHEM Entwicklungsmodell mit den heiligen Maintainern eh kaputt.
(und weil wegen der Aussage vmtl. wieder irgendjemand auf die Barrikaden steigt: Ich bin wenigstens hier um diese Meinung kundzutun! Alle Kollegen schnauben bislang nur verächtlich und melden sich nichtmal im Forum an, verstehen auch nicht was ich an FHEM sehe.)

Hinsichtlich Unit-Tests, umfangreich, nicht nachvollziehbar... Nuja: das Ziel ist eigentlich den Code sauberer (= übersichtlicher) und robuster zu machen.
Es gibt noch praktisch keinen Code für Unit-Tests, verstehe nicht was da umfangreich sein soll. Und das wenige was es gibt, fördert bereits Schnitzer zu Tage.

Aber wie gesagt: wenn Fragen sind, jederzeit. Mach einfach einen Thread "Code Review: 00_SIGNALduino" und kipp dort rein was Du wissen willst.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #70 am: 04 Juni 2020, 10:02:19 »
2020.06.04 09:53:38 1: reload: Error:Modul 98_configdb deactivated:
 Bareword "_cfgDB_Connect" not allowed while "strict subs" in use at configDB.pm line 263.
Bareword "_cfgDB_Uuid" not allowed while "strict subs" in use at configDB.pm line 286.
Compilation failed in require at ./FHEM/98_configdb.pm line 9.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 9.

Ne, das liegt nicht an HoBo. Das liegt daran, dass man Prototypen mag, diese falsch verwendet und überdies nicht weiß wie man Funktionsaufrufe zu gestalten hat.
Da ich aber ansonsten Abstraktionsfähigkeit voraussetze, reicht ein Beispiel:

my $fhem_dbh = _cfgDB_Connect;
->
my $fhem_dbh = _cfgDB_Connect();

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #71 am: 04 Juni 2020, 11:00:26 »
https://gl.petatech.eu/root/HomeBot/-/jobs/180

23 Tests fliegen mir noch um die Ohren - einiges davon ist zweifelsohne HoBo-spezifisch (lies: RichardCZ macht auch Bugs), andere Sachen nicht.
Ich kehre jetzt erstmal vor der eigenen Haustür.

edit:

got: 'syntax error at ./FHEM/21_SONOSPLAYER.pm line 219, near "SONOS_Log undef"
kann man leicht abstellen: SONOS_Log -> SONOSPLAYER_Log
« Letzte Änderung: 04 Juni 2020, 11:31:37 von RichardCZ »
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Online zap

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3985
    • HMCCU
Antw:Unit Test?
« Antwort #72 am: 04 Juni 2020, 11:06:36 »
88_HMCCURPC.pm wurde aus dem Repository entfernt.

2xCCU3, diverse Komponenten (Fenster, Rolladen, Themostate, Stromzähler, Steckdosen ...)
FHEM mit Raspi für CCU Integration.
IOBroker für UI (VIS), Hue, Sonos usw.
Maintainer der Module FULLY, Meteohub und HMCCU (Schnittstelle CCU-FHEM = best of both worlds approach

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2594
Antw:Unit Test?
« Antwort #73 am: 04 Juni 2020, 22:27:21 »
Ist schon ok, aber dann vielleicht zügig an dev -> master planen. Nur so fällt der neue Code in die CI Mühle.

Ist diese "CI Mühle" in FHEM integriert oder kann ich das integrieren? Ich hab schon einen automatisierten Testprozess der auch Problemlos in meinen feature branches nach jedem commit läuft.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline RichardCZ

  • Tester
  • Sr. Member
  • ****
  • Beiträge: 597
  • WHIP! HoBo war gestern.
    • Experimenteller FHEM Fork
Antw:Unit Test?
« Antwort #74 am: 05 Juni 2020, 08:42:52 »
Ist diese "CI Mühle" in FHEM integriert oder kann ich das integrieren? Ich hab schon einen automatisierten Testprozess der auch Problemlos in meinen feature branches nach jedem commit läuft.

Mit "CI Mühle" meine ich die GitLab CI Pipeline (siehe z.B.  https://gl.petatech.eu/root/HomeBot/pipelines/118), die seit gestern bei mir auch erfolgreich statische Binaries baut (aber noch nicht abholt - artifact download und dann irgendwo auf dem Web als "release" bereitstellt - kommt noch).

Wie man bei dem klick auf "perl prove" sehen kann gibt's derzeit 160+ Unit-Tests und knapp 560 basale Funktionstests (*) die auch durchlaufen.

Hier https://gl.petatech.eu/root/HomeBot/-/commit/fca05393b181599746ea12694b4e9fdffc9d7deb
sind die ~20 Module, denen ich erstmal besagtes Morphiumpflaster verpasst habe, weil sie nichtmal erfolgreich laden. (würde mich freuen, wenn nicht nur ich mich da durchpflügen müsste)

Wenn Du mir einen Link auf Deinen automatisierten Testprozess schicken könntest, kann ich ja schauen ob/wie ich den integrieren kann.


(*) Und ich möchte betonen, dass diese dank Rudolf da sind, weil er "mal eben" zeigen konnte wie man die machen kann. Wenn man sich den Anfang des Threads anschaut, dann sieht man, dass ich erstmal nicht gewusst hätte wie. (https://forum.fhem.de/index.php/topic,111061.msg1060028.html#msg1060028 - da habe ich noch Stoff für einiges was ich tun kann)



Ich hoffe ja, dass "man hierzulande" den Nutzen dieser Tests sieht und Interesse, Ideen für Weiteres in dieser Richtung aufbringt. Alleine diese grundlegenden "laden wir einfach mal das Modul" Tests haben schon eine Menge Erkenntnisgewinn (und Bugs) offenbart:
  • überraschende Modulabhängigkeiten - da wird "mal eben" z.B. Mojolicious gebraucht. Da hätte ganz FHEM eine asynchrone Event-Loop haben können. Also eine richtige.
  • offensichtlich obsolete Module, Syntaxfehler, Namespace Konflikte und und und
  • Code Duplikate, (wieder mal) falsche Verwendung von Protos, "Syntaxprobleme" (lies: fast-Syntaxfehler)
  • ...

Und das alles ist eine gute Sache! Der Punkt der Tests ist ja nicht primär zu zeigen in welchem furchtbaren Zustand die FHEM Codebasis ist.
Ich finde, da gehen bei vielen viel zu schnell die Schotten dicht. Der Punkt ist doch eigentlich dank dieser Tests Probleme zu beheben und zwar
(diese Probleme) für immer, weil die Tests ja nicht weggehen. Wer nicht sieht, dass dadurch der Code kategorisch besser wird: ¯\_(ツ)_/¯
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.