我已经制作了一个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")
答案 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