运行 rspec RubyMine 中的测试得到 `bin/rspec:2: `$(' 不允许作为全局变量名`
Running rspec test in RubyMine gets `bin/rspec:2: `$(' is not allowed as a global variable name`
我有一个测试控制器的 rspec 文件。
当我右键单击这个 rspec 文件并 select Run
/ Debug
我所在的文件时,它在控制台中显示以下内容:
Fast Debugger (ruby-debug-ide 0.6.1.beta2, debase 0.2.2.beta8, file filtering is supported) listens on 0.0.0.0:64675
Uncaught exception: /develop/warranty-web/bin/rspec:2: `$(' is not allowed as a global variable name
Process finished with exit code 0
我的 bin/rspec 文件有两行 bash 脚本:
#!/usr/bin/env bash
exec $(dirname [=14=])/spring rspec "$@"
所以 ruby 我的(或 rspec?不确定)正在解释 bash 脚本,就好像它是 ruby。为什么会这样,我该如何修复它以便调试文件?
--编辑:--
如果有帮助,请查看规范文件。
require 'spec_helper'
require 'ruby-debug'
describe Api::V1::Internal::SessionsController do
before do
@request.env['devise.mapping'] = Devise.mappings['api_v1_internal_user']
end
context 'when invalid email' do
it 'returns a 401 (invalid credentials)' do
post :create, user: { email: 'invalidemail@mail.com', password: 'madeuppassword' }
expect(response.status).to eq(401)
end
end
context 'when valid email but invalid password' do
it 'returns a 401 (invalid credentials)' do
post :create, user: { email: 'justin.eisenhauer@metova.com', password: 'madeuppassword' }
expect(response.status).to eq(401)
end
end
context 'when valid email and password' do
it 'returns a 200 (ok)' do
post :create, user: { email: 'justin.eisenhauer@metova.com', password: 'metova' }
expect(response.status).to eq(200)
end
end
end
对于任何有同样问题的人...我最后做的是,我的一个朋友告诉我将 rspec 重命名为 rspec.rb 所以它实际上可以只是 运行 为 ruby。然后将其内容更改为:
require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
Pathname.new(__FILE__).realpath)
require 'rubygems'
require 'bundler/setup'
load Gem.bin_path('rspec-core', 'rspec')
我有一个测试控制器的 rspec 文件。
当我右键单击这个 rspec 文件并 select Run
/ Debug
我所在的文件时,它在控制台中显示以下内容:
Fast Debugger (ruby-debug-ide 0.6.1.beta2, debase 0.2.2.beta8, file filtering is supported) listens on 0.0.0.0:64675
Uncaught exception: /develop/warranty-web/bin/rspec:2: `$(' is not allowed as a global variable name
Process finished with exit code 0
我的 bin/rspec 文件有两行 bash 脚本:
#!/usr/bin/env bash
exec $(dirname [=14=])/spring rspec "$@"
所以 ruby 我的(或 rspec?不确定)正在解释 bash 脚本,就好像它是 ruby。为什么会这样,我该如何修复它以便调试文件?
--编辑:--
如果有帮助,请查看规范文件。
require 'spec_helper'
require 'ruby-debug'
describe Api::V1::Internal::SessionsController do
before do
@request.env['devise.mapping'] = Devise.mappings['api_v1_internal_user']
end
context 'when invalid email' do
it 'returns a 401 (invalid credentials)' do
post :create, user: { email: 'invalidemail@mail.com', password: 'madeuppassword' }
expect(response.status).to eq(401)
end
end
context 'when valid email but invalid password' do
it 'returns a 401 (invalid credentials)' do
post :create, user: { email: 'justin.eisenhauer@metova.com', password: 'madeuppassword' }
expect(response.status).to eq(401)
end
end
context 'when valid email and password' do
it 'returns a 200 (ok)' do
post :create, user: { email: 'justin.eisenhauer@metova.com', password: 'metova' }
expect(response.status).to eq(200)
end
end
end
对于任何有同样问题的人...我最后做的是,我的一个朋友告诉我将 rspec 重命名为 rspec.rb 所以它实际上可以只是 运行 为 ruby。然后将其内容更改为:
require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
Pathname.new(__FILE__).realpath)
require 'rubygems'
require 'bundler/setup'
load Gem.bin_path('rspec-core', 'rspec')