Каково текущее состояние поддержки модульного тестирования на языке R - PullRequest
46 голосов
/ 30 марта 2010

R - язык программирования статистики. Частью R является использование Пакетов, которые сами написаны на языке R. Передовой опыт программирования включает использование модульного тестирования для тестирования функций в этих пакетах во время их написания и при их использовании.

Мне известно о нескольких пакетах для модульного тестирования в R, это

Мне интересно знать;

Есть ли еще какие-нибудь пакеты? Учитывая опыт людей, эти пакеты превосходят в разных вещах? Каково современное состояние модульного тестирования для R?

Ответы [ 2 ]

31 голосов
/ 31 марта 2010

Модульное тестирование кажется более или менее решенной проблемой, поэтому все три пакета, вероятно, будут соответствовать вашим потребностям. Между ними есть тонкие различия:

RUnit основан на xunit, и поэтому его легко понять, если вы использовали какие-либо его версии с других языков.

svUnit использует те же тесты, что и RUnit, но включает графический интерфейс для интерактивного использования.

testthat не совместим ни с одним, но включает в себя практически те же функции и может проверять выполнение тестов только на тех файлах, которые не были изменены, что полезно для тестирования больших проектов.


Несколько лет спустя ...

RUnit и svUnit до сих пор не имеют ни проверок на сообщения и предупреждения, ни тестовое кэширование, и, похоже, не находятся в стадии разработки, поэтому testthat должен быть вашим первым выбором для новых проектов. Вы можете конвертировать RUnit тесты в testthat тесты, используя мой пакет runittotestthat.

6 голосов
/ 31 марта 2010

вот несколько вещей, которые я нашел в Google.

Эта тема обсуждалась в списке рассылки здесь , в котором упоминались пакеты выше. Кажется, что RUnit и svunit выполнят один и тот же тестовый код, но Runit также имеет функции отслеживания и покрытия кода.

Сравнение этих двух также есть в R wiki на http://rwiki.sciviews.org/doku.php?id=developers:runit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...