Хороший способ получить письменные тесты - увеличить подотчетность. Если разработчик должен объяснить кому-то еще точно , почему они не записывали модульные тесты, они, скорее всего, это сделают. Большинство компаний, с которыми я работал, потребовали, чтобы любые предлагаемые фиксации на магистраль были пересмотрены другим разработчиком перед фиксацией и чтобы имя рецензента включалось в комментарии коммита. В этой среде вы можете сообщить своей команде, что они не должны позволять коду «проходить» проверку однорангового кода, если не выполняются модульные тесты.
Теперь у вас есть цепочка ответственности. Если разработчик совершает код, не называя рецензента, вы можете спросить у них, кто просмотрел код (и, поскольку я усвоил трудный путь, должен сказать «никто» вашему боссу, когда его задали этот вопрос, это не весело!). Если вам стало известно о том, что код совершается без модульных тестов, вы можете спросить как разработчика , так и, что он не был рассмотрен в блоке. Возможность задать этот вопрос побуждает обозревателей кода настаивать на модульных тестах.
Еще один шаг, который вы можете предпринять, - установить фиксацию фиксации в вашей системе управления версиями, которая отправляет всю команду по электронной почте, когда совершается коммит, вместе с файлами и даже кодом, который составил коммит. Это обеспечивает высокий уровень прозрачности и далее поощряет разработчиков «следовать правилам». Конечно, это работает только в том случае, если оно масштабируется до количества, которое делает ваша команда в день.
Это скорее психологическое решение, чем техническое решение, но оно хорошо работает для меня при управлении командами программного обеспечения. Это также немного мягче, чем резиновый шланг, предложенный в другом ответе. :-)
У меня есть проблема, связанная с внешними консультантами, которые делают небольшое приложение для нашей компании. Они утверждают, что были компетентными на tdd, но когда я хотел, чтобы они доставляли по крайней мере 85% на ncover, они начали говорить о том, как это займет гораздо больше времени, чтобы доставить наш продукт. Они не хотят доставлять более 65% покрытия, которые, как мне кажется, предполагают, что код будет практически непроверен в областях, так как я отправлюсь в отпуск по уходу за ребенком в середине проекта, я подозреваю, что моя команда получит довольно багги (остальная часть моей команды пока не сильна в tdd) – zzzuperfly