我正在尝试使用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
。
如果rspec
和echo %PATH%
都不起作用,您应该检查cmd中的$Env:Path
或Powershell中的uru
的PATH变量。应该有一个指向ruby bin文件夹的记录。
另一件要记住的事情是,你可能安装了多个ruby版本。RubyInstaller网站建议使用ruby -version
0。如果你已经安装了rubyuru,首先需要激活ruby实例。在Powershell或cmd中运行uru main
查看已安装的所有版本。在我的例子中:
PP_7你必须选择一个列出的版本,例如CC_12,然后所有的ruby命令和安装的gems应该在打开的Powershell或cmd会话中工作,路径输出也将显示所选版本。
如果你有其他软件来管理多个ruby版本,请参考它的文档。