Angenommen, ich wollte ein Open-Source-Projekt starten, von dem ich hoffe / erwarte, dass viele Leute Patches einreichen und so weiter. Ist es möglich, einen strengen TDD-Ansatz zu verfolgen? Kann / sollte ich erwarten / vertrauen, dass Mitarbeiter Qualitätstests schreiben, wenn sie einen Patch einreichen?
Eine Sache, über die ich nachgedacht habe, ist das Schreiben von Testsuiten für einzelne Fehlerberichte und Feature-Anfragen und das Erfordernis, dass alle Patches / Pull-Anfragen die Tests bestehen, aber an diesem Punkt scheint es besser zu sein, nur das Feature / Bugfix zu schreiben mich selber.
Soweit ich das beurteilen kann, scheinen die meisten großen Open-Source-Projekte, die TDD verwenden (oder zumindest Tests schreiben), größtenteils nur von einer Einzelperson oder einem Team geschrieben worden zu sein, wobei es einfach ist, Praktiken wie TDD durchzusetzen.
quelle
Antworten:
Sie können einen TDD-Ansatz (Test First) für ein Open Source-Projekt, bei dem Patches von der Öffentlichkeit eingereicht werden können, nicht wirklich durchsetzen.
Was Sie erzwingen können , ist, dass alle Patches eine Reihe von Testfällen für die im Patch enthaltenen Fixes enthalten müssen und dass diese Testfälle sowie alle vorhandenen Testfälle bestanden werden müssen. Sie können dies durchsetzen, indem Sie nur wenigen vertrauenswürdigen Entwicklern Commit-Rechte erteilen, von denen bekannt ist, dass sie die Richtlinien des Projekts verwenden und diesen zustimmen, und indem Sie öffentlich erklären, dass Übermittlungen / Pull-Anforderungen nur dann berücksichtigt werden, wenn sie Testfälle bestehen (mit ausreichende Abdeckung).
Dies stellt nicht sicher, dass der Test zuerst geschrieben wird, stellt jedoch sicher, dass der Test geschrieben wird .
quelle
Sie können die Benutzer bitten, nur Test-Patches einzureichen, bevor sie an dem Code arbeiten dürfen. Dies würde eine zusätzliche Möglichkeit bieten, das geplante Design zu überprüfen, bevor der Code selbst geschrieben wird.
In der Praxis kann dies jede Begeisterung töten, die Menschen für einen Beitrag zum Projekt haben - oder es kann ein Feuer bei denen entzünden, die mit Ihrer Methodik einverstanden sind.
Die Rezensenten müssten jedoch sehr gut darin sein, die Design-Reviews schnell umzudrehen, um die Entwicklung nicht zu behindern.
quelle