Протестируйте только одно это или опишите с Rspec - PullRequest
4 голосов
/ 29 июня 2011

В TestUnit вы можете запустить один тест в файле с параметром -n

, например,

require 'test_helper'

class UserTest < ActiveSupport::TestCase

  test "the truth" do
    assert true
  end

  test "the truth 2" do
    assert true
  end

end

. Вы можете выполнить только тест истинности

ruby -Itest test/unit/user_test.rb -n test_the_truth

Результат

1 tests, 1 assertions, 0 failures, 0 errors, 0 skip

Как это можно сделать с помощью rspec?

Кажется, команда не работает

rspec spec/models/user_spec.rb -e "User the truth"

Ответы [ 3 ]

7 голосов
/ 29 июня 2011

Вы не указали источник своей спецификации, поэтому трудно сказать, в чем проблема, но в целом вы можете использовать опцию -e для запуска одного примера.С учетом этой спецификации:

# spec/models/user_spec.rb
require 'spec_helper'
describe User do

  it "is true" do
    true.should be_true
  end

  describe "validation" do
    it "is also true" do
      true.should be_true
    end
  end

end

Эта командная строка:

rspec spec/models/user_spec.rb -e "User is true"

будет выдавать этот вывод:

Run filtered including {:full_description=>/(?-mix:User\ is\ true)/}
.

Finished in 0.2088 seconds
1 example, 0 failures

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

rspec spec/models/user_spec.rb -e "User validation is also true"

Или для запуска всех примеров в группе проверки:

rspec spec/models/user_spec.rb -e "User validation"
2 голосов
/ 23 августа 2012

Вы также можете выбрать строку теста, которую хотите выполнить.

rspec spec/models/user_spec.rb:8

Пропустив любую строку внутри области теста, будет выполнен только этот тест. Вы также можете использовать это, чтобы выполнить весь контекст внутри вашего теста.

1 голос
/ 13 апреля 2013

По крайней мере, в Rspec 2.11.1 вы можете использовать все следующие опции:

** Фильтрация / теги **

In addition to the following options for selecting specific files, groups,
or examples, you can select a single example by appending the line number to
the filename:

  rspec path/to/a_spec.rb:37

-P, --pattern PATTERN            Load files matching pattern (default: "spec/**/*_spec.rb").
-e, --example STRING             Run examples whose full nested names include STRING (may be
                                   used more than once)
-l, --line_number LINE           Specify line number of an example or group (may be
                                   used more than once).
-t, --tag TAG[:VALUE]            Run examples with the specified tag, or exclude examples
                                 by adding ~ before the tag.
                                   - e.g. ~slow
                                   - TAG is always converted to a symbol
...