rspec如何运行单个测试?

我已经在网上找到各种链接,但没有一个是最新的,并显示如何运行单个测试。

我有以下文件:

/spec/controllers/groups_controller_spec.rb

我在终端中使用什么命令来运行该规范,以及在哪些命令中运行命令?

我的宝石文件:

# Test ENVIRONMENT GEMS
group :development, :test do
    gem "autotest"
    gem "rspec-rails", "~> 2.4"
    gem "cucumber-rails", ">=0.3.2"
    gem "webrat", ">=0.7.2"
    gem 'factory_girl_rails'
    gem 'email_spec'
end

spec文件

require 'spec_helper'

describe GroupsController do
  include Devise::TestHelpers

  describe "GET yourgroups" do
    it "should be successful and return 3 items" do

      Rails.logger.info 'HAIL MARRY'

      get :yourgroups, :format => :json
      response.should be_success
      body = JSON.parse(response.body)
      body.should have(3).items # @user1 has 3 permissions to 3 groups
    end
  end
end

通常我会这样做:

rspec ./spec/controllers/groups_controller_spec.rb:42

其中42代表我想要运行的测试线。

EDIT1:

你也可以使用标签。 看这里。

编辑2:

尝试:

bundle exec rspec ./spec/controllers/groups_controller_spec.rb:42

使用Rake:

rake spec SPEC=path/to/spec.rb

(信用度可以回答这个问题,去投票给他。)

编辑 (感谢@cirosantilli):要在规范中运行一个特定的场景,您必须提供与描述相匹配的正则表达式模式匹配。

rake spec SPEC=path/to/spec.rb 
          SPEC_OPTS="-e "should be successful and return 3 items""

你可以通过一个正则表达式来规范命令将只运行it匹配您提供的名称块。

spec path/to/my_spec.rb -e "should be the correct answer"
链接地址: http://www.djcxy.com/p/59301.html

上一篇: rspec how to run a single test?

下一篇: When to use RSpec let()?