19.4 Покрытие тестов

Вы можете выполнять тестирование покрытия для файла кода Lisp, загрузив библиотеку testcover и используя команду M-x testcover-start RET file RET для инструментации кода. Затем протестируйте свой код, вызвав его один или несколько раз. Затем используйте команду M-x testcover-mark-all для отображения цветных выделений в коде, показывающих, где покрытие недостаточно. Команда M-x testcover-next-mark переместит курсор вперед к следующему выделенному месту.

Обычно красное выделение указывает на то, что форма никогда не была полностью вычислена; коричневое выделение означает, что она всегда вычислялась в одно и то же значение (что означает, что тестирование того, что делается с результатом, было незначительным). Однако красное выделение пропускается для форм, которые потенциально не могут завершить вычисление, например error. Коричневое выделение пропускается для форм, которые ожидается, что всегда будут вычисляться в одно и то же значение, например (setq x 14).

Для сложных случаев вы можете добавить макросы do-nothing в свой код, чтобы дать совет инструменту тестирования покрытия.

Макрос: 1value form

Вычислить form и вернуть его значение, но сообщить тестированию покрытия, что значение form всегда будет одинаковым.

Макрос: noreturn form

Вычислить form, сообщив тестированию покрытия, что form никогда не должен возвращать значение. Если он когда-либо возвращает значение, вы получите ошибку во время выполнения.

Edebug также имеет функцию тестирования покрытия (см. Тестирование покрытия). Эти функции частично дублируют друг друга, и было бы чище их объединить.