【发布时间】:2011-07-08 20:12:30
【问题描述】:
我正在尝试使用 Thor::Actions 模板方法生成一些 C++ 测试文件模板,但 erb 一直告诉我我有未定义的变量和方法。
这是调用代码:
def test (name, dir)
template "tasks/templates/new_test_file", "src/#{dir}/test/#{name}Test.cpp"
insert_into_file "src/#{dir}/test/CMakeLists.txt",
"#{dir}/test/#{name}Test ", :after => "set(Local "
end
这是模板:
<% test_name = name + "Test" %>
#include <gtest/gtest.h>
#include "<%= dir %>/<%= name %>.h"
class <%= test_name %> : public testing::Test {
protected:
<%= test_name %> () {}
~<%= test_name %> () {}
virtual void SetUp () {}
virtual void TearDown () {}
};
// Don't forget to write your tests before you write your implementation!
TEST_F (<%= test_name %>, Sample) {
ASSERT_EQ(1 + 1, 3);
}
我必须怎么做才能将 name 和 dir 纳入范围?我有更复杂的模板,我也需要这个功能。
【问题讨论】: