我制作了一个ruby命令行“ frontend”,它可以根据用户输入设置不同的环境变量,这是一种“ ncurses”前端,但是仅在ruby中,我知道有Rake和类似的工具,但是我们这样做是因为我们需要可以根据需要在运行时设置的变量,并且前端还可以通过电子邮件将运行结果发送给我的团队。
这在linux机器上很好用,但是在Windows上却不起作用。
我将问题跟踪到文件名中带有通配符的rspec命令,该命令在linux上可以正常使用,但是如果我在Windows中手动运行命令,它什么也没做。如果我使用一个文件运行rspec命令,则可以正常运行,但不能使用通配符。
我尝试了几次Google搜索,尝试了我发现的以下解决方法,但未成功:
(此代码段位于我使用“ 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")
我发现的解决方案是制作一个Rakefile并运行Rake命令。这样,无论我在什么操作系统上运行它们,所有文件都将执行。
Rakefile:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句