术语"RSpec"未被识别为 cmdlet、函数、脚本文件、错误的名称



我正在尝试使用rspec测试ruby文件。但是我得到了错误,它说

rspec : The term 'rspec' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a 
path was included, verify that the path is correct and try again.
At line:1 char:1
+ rspec test2.rb
+ ~~~~~
+ CategoryInfo          : ObjectNotFound: (rspec:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

) (https://i.stack.imgur.com/axHV5.png)

我该如何解决这个问题?在这里我附加了我的所有3个ruby文件也user.rb

require_relative 'main'
print 'Input array: '
solution = Solution.new(gets.split.map(&:to_f))
if solution.posled?
puts "Yes, posled: #{solution.arr_new}"
else
puts 'No'
end
<代码>

main.rb

require_relative 'main2'
RSpec.describe Solution do
describe '#Solution' do
it 'should return true' do
expect(Solution.posled?([1, 2, 3])).to eq(false)
end
it 'should return true if contains posled before negative el' do
uncorrect = [1, 2, 3, -1]
Random.rand(10).times { uncorrect.push(Random.rand(-10..9)) }
expect(Solution.posled?(uncorrect)).to eq(true)
end
it 'should return false if there is no posled before first neg el' do
uncorrect = [1, 3, 2, -1]
Random.rand(10).times { uncorrect.push(Random.rand(-10..9)) }
expect(Solution.posled?(uncorrect)).to eq(false)
end
it 'should return false if first el negative' do
uncorrect = [-1, 1, 2, 3]
Random.rand(10).times { uncorrect.push(Random.rand(-10..9)) }
expect(Solution.posled?(uncorrect)).to eq(false)
end
it 'should return false if there is no negative elements' do
uncorrect = [1, 2, 3]
Random.rand(10).times { uncorrect.push(Random.rand(-10..9)) }
expect(Solution.posled?(uncorrect)).to eq(false)
end
end
end

test2.rb

*** LOCAL GEMS ***
rspec (3.12.0)
rspec-core (3.12.0)
rspec-expectations (3.12.0)
rspec-mocks (3.12.0)
rspec-support (3.12.0)

我尝试了ruby测试文件,并寻找得到错误和更正。但是当我运行rspec时,我得到一个错误。我该如何解决这个

您的问题与ruby文件无关,根据您的第一个输出,没有找到命令。

可能有不同的原因。你可以在cmd或powershell中运行gem list rspec吗?如果它工作,那么您应该检查rspec是否安装在您的ruby实例中。运行gem uninstall rspec命令,输出如下所示:

187p374     : ruby 1.8.7 (2013-06-27 patchlevel 374) [i386-mingw32]
233p222     : ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]
253p105     : ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32]
268p205     : ruby 2.6.8p205 (2021-07-07 revision 67951) [x64-mingw32]
274p191     : ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
310p0       : ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [i386-mingw32]
jruby       : jruby 9.2.19.0 (2.5.8) 2021-06-15 55810c552b Java HotSpot(TM) 64...
main        : ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]

如果找到,请尝试用gem install rspec重新安装,而不是ruby

如果rspececho %PATH%都不起作用,您应该检查cmd中的$Env:Path或Powershell中的uru的PATH变量。应该有一个指向ruby bin文件夹的记录。

另一件要记住的事情是,你可能安装了多个ruby版本。RubyInstaller网站建议使用ruby -version0。如果你已经安装了rubyuru,首先需要激活ruby实例。在Powershell或cmd中运行uru main查看已安装的所有版本。在我的例子中:

PP_7你必须选择一个列出的版本,例如CC_12,然后所有的ruby命令和安装的gems应该在打开的Powershell或cmd会话中工作,路径输出也将显示所选版本。

如果你有其他软件来管理多个ruby版本,请参考它的文档。

相关内容

  • 没有找到相关文章

最新更新