
Hallo, ich bin nicht besonders erfahren mit dem Ordner-Layout von Python Projekten und möchte hier gerne mal die Meinung von etwas Erfahreneren Entwicklern einholen und sehen, ob ich auf dem richtigen Weg bin. Es geht um diese Projekt, bei dem ich kein Entwickler oder Maintainer bin: https://github.com/DeepSpace2/StyleFrame Dass das "tests" Directory innerhalb des Source Directory (hier "styleframe" genannt) ist, habe ich schon öfters gesehen. Das nehme ich mal als "normal" an, auch wenn es m.W. derzeit nicht mehr das empfohlene Vorgehen ist. Aber irgendwas stimmt mit den Tests nicht. Ich kann nicht, auf dem mir bekannten Weg, einzelnen Test-Klassen oder Methoden explizit auswählen. Beispielsweise möchte ich die Klasse "StyleFrameTest" (in style_frame_tests.py) laufen lassen. Mein CWD ist das Projekt-Root. "python3 -m unittest styleframe.tests.style_frame_tests.StyleFrameTest" So wird einfach kein Test gefunden. Warum kann ich nicht nachvollziehen. Ein discover läuft problemlos über alle Tests: "python3 -m unittest" Mache ich etwas falsch, oder ist das Layout einfach zu "strange"? Was könnte man am Projekt diesbezüglich verbessern? SG Christian

Am 02.07.22 um 18:27 schrieb c.buhtz@posteo.jp:
Dass das "tests" Directory innerhalb des Source Directory (hier "styleframe" genannt)
Was Du „Source Directory” nennst, die das „package“. Die Tests dort zu haben ist m.E. keine gute Idee, denn dann werden sie überall mit installiert, wo das Package installiert wird — und die allerwenigsten werden es benötigen oder auch nur bemerken. (Es gibt einige wenige Ausnahmen, bei denen das sinnvoll ist, nämlich Bibliotheken, die auch Funktionen zum Testen zur Verfügung stellen. Aber auch hier: der größte Teil des Codes wird nur von den allermeisten nicht benötigt.) „Mit installiert‘ bedeutet auch, dass Unnötige Daten durch die Gegend transportiert werden und unnötiger Source compiliert wird. Alle das kostet Strom — Keinvieh macht auch Mist — und Strom sollen wir angesichts der anrollenden Klimiakatastrophe sparen. Und als Entwickler haben wir dafür einige Möglichkeiten, z.B. eben möglichst kleine Packages auszuliefern.
"python3 -m unittest styleframe.tests.style_frame_tests.StyleFrameTest" Du möchtest auf pytest umstellen. :-) https://github.com/pytest-dev/unittest2pytest ist Dein Freund.
-- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible |

Hallo Hartmut, danke für dein Feedback. On 2022-07-03 10:04 Hartmut Goebel <h.goebel@crazy-compilers.com> wrote:
Was Du „Source Directory” nennst, die das „package“. Die Tests dort zu haben ist m.E. keine gute Idee,
Sehe ich ja auch so. Auch deine Ausführungen dazu verstehe ich.
kostet Strom — Keinvieh macht auch Mist — und Strom sollen wir angesichts der anrollenden Klimiakatastrophe sparen.
Ich sehe wir sind auf der selben Linie.
"python3 -m unittest styleframe.tests.style_frame_tests.StyleFrameTest" Du möchtest auf pytest umstellen. :-) https://github.com/pytest-dev/unittest2pytest ist Dein Freund.
Nein möchte ich nicht, selbst wenn es mein Projekt wäre. Pytest und unittests haben beide ihre Daseinsberechtigung und ich ich gebe keinem vom beiden den generellen Vorzug. Aber das pytest mit einem sub-optimalen (und evtl. sogar regelwidrigen) Projekt-Layout klarkommt, betrachte ich nicht als Vorteil, sondern eher im Gegenteil. Wie sollen die User etwas lernen, wenn die Tools ihnen alles durchgehen lassen. ;) SG Christian
participants (2)
-
c.buhtz@posteo.jp
-
Hartmut Goebel