ruby with wildcard rspec命令无法在Windows机器上运行

时间:2015-11-16 21:03:47

标签: ruby windows rspec

我已经制作了一个ruby命令行“frontend”,根据用户输入设置不同的环境变量,一种“ncurses”前端但只有ruby,我知道有Rake和这样的工具,但我们这样做了因为我们需要可以根据需要在运行时设置的变量,而前端也可以通过电子邮件将运行结果发送给我的团队。

这在linux机器上非常有效,但在Windows中无法正常工作。

我将问题追溯到rspec命令,该命令在文件名中有一个通配符,这在linux中完美运行,但是如果我在Windows中手动运行命令,它没有做任何事情。如果我用一个文件运行rspec命令它可以正常工作,但不能使用通配符。

我尝试了几次谷歌搜索,尝试了我找到的这种解决方法,但没有成功:

(此代码片段位于我使用“ruby FILE.rb”运行的ruby文件中)

system("rspec #{spec\2.2\web_pc_*} -e '#{ARGV[1]}' -o log.txt")
system("rspec #{spec\2.2\web_pc_/*} -e '#{ARGV[1]}' -o log.txt")
system("rspec #{spec\2.2\web_pc_'*'} -e '#{ARGV[1]}' -o log.txt")
system("rspec #{spec\2.2\web_pc_"*"} -e '#{ARGV[1]}' -o log.txt")
system("rspec #{spec\2.2\'web_pc_*'} -e '#{ARGV[1]}' -o log.txt")

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是制作一个Rakefile并运行Rake命令。这样,无论我运行什么操作系统,所有文件都会执行。

Rake文件:

require 'rake/testtask'

Rake::TestTask.new(:all) do |t|
  t.libs << "tests"
  t.test_files = FileList['tests/test_*.rb']
  t.verbose = true
end

task default: :all