Допустим, я хотел начать проект с открытым исходным кодом, который, как я надеюсь / ожидаю, заставит многих людей присылать исправления и еще много чего. Целесообразно ли применять строгий подход TDD? Могу ли / должен ли я / доверять соавторам писать тесты качества всякий раз, когда они отправляют патч?
Одна вещь, о которой я думал, - это написание тестовых наборов для отдельных отчетов об ошибках и запросов функций и требование, чтобы все запросы на исправления / извлечения проходили тесты успешно, но в этот момент кажется, что было бы лучше просто написать функцию / исправление ошибок себя.
Насколько я могу судить, большинство крупных проектов с открытым исходным кодом, которые используют TDD (или, по крайней мере, пишут тесты), по-видимому, в основном написаны исключительно отдельным лицом или командой, где легко внедрить такие практики, как TDD.
источник
Ответы:
Вы не можете реально применить подход TDD (сначала тестировать) в проекте с открытым исходным кодом, где патчи могут быть представлены широкой публикой.
Что вы можете применить, так это то, что все исправления должны иметь набор тестовых случаев для исправлений, включенных в патч, и что эти тестовые случаи, а также все существующие тестовые случаи должны пройти. Вы можете применить это, предоставив права на коммит только нескольким доверенным разработчикам, которые, как известно, используют и согласны с политиками проекта, и публично заявив, что submissions / pull-запросы будут включены только в том случае, если они приходят с проходящими тестовыми примерами (с достаточный охват).
Это не гарантирует, что тест написан первым , но гарантирует, что тест написан .
источник
Вы можете попросить людей представить исправления только для тестирования, прежде чем им разрешат работать над кодом; это дало бы дополнительную возможность проверить запланированный дизайн до того, как сам код будет написан.
На практике это может убить любой энтузиазм, который люди испытывают к участию в проекте, или может разжечь огонь среди тех, кто согласен с вашей методологией.
Однако рецензенты должны быть очень хороши в том, чтобы быстро перевернуть рецензии на дизайн, чтобы не затормозить разработку.
источник