Я реализовал решение @ Serabe для вас.Смотрите суть: https://gist.github.com/1142145.
Поместите файл my_formatter.rb
в вашу папку spec и запустите rspec --formatter MyFormatter
.Форматировщик будет сравнивать текущий результат выполнения с предыдущим результатом и выводит разницу в виде таблицы.
ПРИМЕЧАНИЕ. Форматер создает / перезаписывает файл result.txt
в текущей папке.
Пример использования:
D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter
..........
No changes since last run
Finished in 0.011 seconds
10 examples, 0 failures
No changes since last run
строка была добавлена форматером.
А теперь я намеренно сломал одну и перезапустил rspec:
D:\Projects\ZPersonal\equatable>rspec spec --format MyFormatter
..F.......
Affected tests (1).
PS CS Description
. F Equatable#== should be equal to the similar sock
PS - Previous Status
CS - Current Status
Failures:
1) Equatable#== should be equal to the similar sock
Failure/Error: subject.should == Sock.new(10, :black, 0)
expected: #<Sock:0x2fbb930 @size=10, @color=:black, @price=0>
got: #<Sock:0x2fbbae0 @size=10, @color=:black, @price=20> (using ==)
Diff:
@@ -1,2 +1,2 @@
-#<Sock:0x2fbb930 @color=:black, @price=0, @size=10>
+#<Sock:0x2fbbae0 @color=:black, @price=20, @size=10>
# ./spec/equatable_spec.rb:30:in `block (3 levels) in <top (required)>'
Finished in 0.008 seconds
10 examples, 1 failure
Failed examples:
rspec ./spec/equatable_spec.rb:29 # Equatable#== should be equal to the similar sock
Таблица с затронутыми спецификациямибыл добавлен форматтером:
Affected tests (1).
PS CS Description
. F Equatable#== should be equal to the similar sock
PS - Previous Status
CS - Current Status
Если какой-либо статус спецификации отличается от текущего и предыдущего прогона, форматтер выводит предыдущий статус, текущий статус и описание спецификации.''означает пройденные спецификации, «F» - неудачный, «P» - ожидающий.
Код далек от совершенства, поэтому не стесняйтесь критиковать и изменять его по своему усмотрению.
Надеюсь, этопомогает.Дайте знать, если у вас появятся вопросы.