РубиСпец
Написано в | Руби |
---|---|
Тип | Тесты спецификаций языка программирования Ruby |
Веб-сайт | www ![]() |
Целью проекта RubySpec было написание полной исполняемой спецификации языка программирования Ruby . Этот проект содержит спецификации, описывающие синтаксис языка Ruby и классы стандартной библиотеки . Проект содержит два основных компонента:
- исходники RubySpec
- структура MSpec
Набор тестов RubySpec уловил большую часть поведения версий 1.8.6/1.8.7/1.9 в качестве эталонного инструмента соответствия. Ruby MRI 1.9.2 прошел более 99% RubySpec, [ 1 ] а версия 2.2.0 дала сбой на одном из тестов. [ 2 ]
История
[ редактировать ]Тесты RubySpec были первоначально созданы в 2006 году для проекта Rubinius при значительном вкладе проекта JRuby . [ 3 ] Сейчас он используется в других проектах реализации Ruby, таких как IronRuby . [ 4 ] Проект RubySpec был прекращен в конце 2014 года из-за отсутствия поддержки со стороны основных разработчиков Ruby. [ 2 ]
Позже Бенуа Далоз возродил его как «The Ruby Spec Suite», и по состоянию на 15 августа 2023 г. он активно поддерживается по адресу https://github.com/ruby/spec .
Ссылки
[ редактировать ]- ^ «Выпущен Ruby 1.9.2» . Проверено 23 октября 2010 г.
- ^ Jump up to: а б «Разработчики Matz на Ruby не используют RubySpec, и это вредит Ruby» . Проверено 13 января 2015 г.
- ^ «РубиСпец» . Проверено 23 октября 2010 г.
Проект начался как часть Rubinius (теперь спонсируется Engine Yard), и большая часть работы была выполнена участниками Rubinius, при значительном вкладе сотрудников JRuby. Engine Yard оказала обширную финансовую поддержку этому проекту, наняв Эвана Феникса с июня 2007 года и еще нескольких штатных разработчиков с января 2008 года. Более подробную информацию о сроках реализации проекта см. в разделе «История».
- ^ «РубиСпец» . Проверено 23 октября 2010 г.
Репозиторий IronRuby GIT включает копию тестов RubySpec, включая тестовую среду MSpec, в папке External.LCA_RESTRICTED\Languages\IronRuby\mspec. Это позволяет легко изменять существующие тесты или писать новые тесты, а также исправлять ошибки в исходниках IronRuby — и все это за одну фиксацию в репозитории IronRuby.