2015-05-02 3 views
1

У меня есть следующий спецификации файла:Как запустить RSpec-тест на определенной строке?

require 'rails_helper' 

describe Order do 
    it "calculates the total price of the order" do 
    item1 = create(:item) 
    item2 = create(:item, price: 20) 

    order = create(:order) 
    order.items << item1 
    order.items << item2 

    order.calculate_total 
    expect(order.total).to eq(30) 
    end 

    it "raises exception if order has no items in it" do 
    expect { create(:order) }.to raise_exception 
    end 
end 

И я хочу, чтобы запустить тест из 16 линии (не весь тест), так что я типа:

rspec spec/models/orders_spec.rb -l16 

Вместо того, чтобы получить работает тест, я получаю следующий ошибка:

invalid option: -l18 

Как запустить тест с определенной строки?

ответ

3

Вы хотите использовать формат rspec path/to/spec.rb:line_no.

(т.е.) rspec spec/models/orders_spec.rb:16

Вот ссылка на RelishApp (лучшее место для документации RSpec), если вы хотите немного больше читать.

+0

Спасибо, я увидел подход с «-l» в скринкасте, но это делать не работает для моего окружения!. – Kavachaj

+0

Рад помочь! Похоже, что '-l' или' --line' был удален в версии '3.x' RSpec. –

0

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

Более предсказуемый способ сделать это с помощью rspec - использовать -e <example name>. В этом случае:

rspec -e "raises exception if order has no items in it"