我有这个小的erb程序,
def createHtml erbFileName,outputHtmlFile
require 'erb'
erb_str = File.read(erbFileName)
@name = 'Generated by Ruby Automation Framework '
renderer = ERB.new(erb_str)
@result = renderer.result
File.open(outputHtmlFile, 'w') do |f|
f.write(@result)
end
end
当我直接从同一文件中调用此函数时,此程序运行正常
createHtml 'ERBTemplate.html.erb','HTMLReport.html'
但是我必须从Rspec After hook
调用此函数,当我在钩子之后从Rspec调用同一行时,它没有呈现@name
的值。可能是什么原因?
看看我下面的函数的调用方式
describe 'Behavior' do
it 'something' do
puts 'something'
end
after(:all) do
createHtml 'ERBTemplate.html.erb','HTMLReport.html'
end
end
ERB模板如下
<div id="footer">
<% 5.times do %>
<p><%= @name %></p>
<% end %>
</div>