Существуют ли инструменты для обнаружения кода, который ведет себя по-разному в разных версиях ruby? - PullRequest
2 голосов
/ 03 ноября 2010

Существуют ли какие-либо инструменты, которые указывали бы, что ваш код может давать разные результаты в разных версиях ruby?

Я предполагаю что-то вроде

a = 1
b = 2
string = [1, 2, 3, 4].to_s
ToolName: Array#to_s has different behaviour in Ruby 1.8 and 1.9

Или, если это не удалось, проверьте каждую переменную в каждой строке и укажите первую точку, в которой они расходятся в разных версиях, например:

Ruby1.8:
a: 1 at line 1
b: 2 at line 2
string: "1234" at line 3

Ruby1.9:
a: 1 at line 1
b: 2 at line 2
string: "[1, 2, 3, 4]" at line 3

Ruby1.8 and Ruby1.9 first differ at line 3

Или в настоящее время доступен единственный подход для модульного тестирования вашего кода и проверки того, что тесты проходят на всех версиях ruby?

Ответы [ 2 ]

2 голосов
/ 06 марта 2011

гем One9 позволяет запустить набор тестов и сообщит, какие методы, которые вы вызвали, изменились между 1,8 и 1,9.

0 голосов
/ 03 ноября 2010

Я ничего не слышал, хотя комбинация rvm и хороших тестов может помочь вам разобраться.

У rvm есть возможность циклически проходить через все рубины, которые вы установили, и выполнять каждый скрипт в каждом. Если этот сценарий представляет собой набор тестов, вы можете обнаружить любые ошибки, связанные с версией. Set Actions - это то место, где вы захотите прочитать об этом совершенстве.

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