我试图这样做是为了让自己的单元测试变得轻而易举。
相关示例脚本的内容如下:
irb
require 'random_utils.rb'
a = SuccessChecker.new
现在这只是打开irb。我希望之后能够运行任意代码,这样我就可以通过需要文件、实例化类、填充测试条件等来制作脚本,使我的生活变得更轻松。
答案1
您正在按顺序执行命令,因此 shell 会执行irb
,等待irb
关闭并执行下一个命令(在您的情况下require 'random_utils.rb'
)...
您想要的是将脚本提供给irb
viaSTDIN
irb <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF
但这可能不会达到您想要的irb
交互使用效果,您应该考虑使用普通的 ruby 解释器,例如:
ruby <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF
答案2
答案3
对此的一个现代解决方案是使用pry
gem 并将其设为普通的旧 ruby 脚本。
#!/usr/bin/env ruby
require 'pry'
require 'random_utils.rb'
a = SuccessChecker.new
binding.pry
无论何时绑定.pry 都会将你转储到调试器中...