如何创建一个运行 irb 的 bash 脚本,然后运行一些 ruby​​ 代码?

如何创建一个运行 irb 的 bash 脚本,然后运行一些 ruby​​ 代码?

我试图这样做是为了让自己的单元测试变得轻而易举。

相关示例脚本的内容如下:

irb
require 'random_utils.rb'
a = SuccessChecker.new

现在这只是打开irb。我希望之后能够运行任意代码,这样我就可以通过需要文件、实例化类、填充测试条件等来制作脚本,使我的生活变得更轻松。

答案1

您正在按顺序执行命令,因此 shell 会执行irb,等待irb关闭并执行下一个命令(在您的情况下require 'random_utils.rb')...

您想要的是将脚本提供给irbviaSTDIN

irb <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF

但这可能不会达到您想要的irb交互使用效果,您应该考虑使用普通的 ruby​​ 解释器,例如:

ruby <<EOF
require 'random_utils.rb'
a = SuccessChecker.new
EOF

答案2

看起来您已准备好采取下一步并使用单元测试库。

这里有一个介绍小型测试,内置于 Ruby 1.9。

答案3

对此的一个现代解决方案是使用prygem 并将其设为普通的旧 ruby​​ 脚本。

#!/usr/bin/env ruby

require 'pry'
require 'random_utils.rb'
a = SuccessChecker.new
binding.pry

无论何时绑定.pry 都会将你转储到调试器中...

相关内容