我有一個使用Maven管理的小型命令行實用程序項目。該實用程序是一個非常簡單的應用程序,用於填充Velocity模板並將結果轉儲到新文件。我的問題是在哪裏放置我的Velocity模板。當我將它們放入src/test/resources/foo/bar/baz
時,mvn test
因爲找不到引用的模板而失敗,儘管它明顯存在於target/classes/foo/bar/baz
中,這是測試文件和測試類所在的位置。如果我將模板放在項目的頂層目錄中,測試通過了,但是我沒有遵循Maven項目結構,我懷疑實際打包的.jar文件不起作用。我錯過了什麼?我應該在哪裏放置用Maven構建的命令行實用程序的Velocity模板文件?
UPDATE:
public final void mergeTemplate(final String templateFileName, final Writer writer) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException, IOException, Exception {
Velocity.init();
Velocity.mergeTemplate(templateFileName, Charset.defaultCharset().name(), context(), writer);
}
試驗方法:
下測試方法
@Test
public void testMergeTemplate() throws Exception {
final FooGenerator generator = new FooGenerator();
final StringWriter writer = new StringWriter();
generator.mergeTemplate("foo.yaml", writer);
Assert.assertEquals("Something went horribly, horribly wrong.", EXPECTED_RESULT, writer.toString().trim());
}
我可以把foo.yaml
,並有測試的唯一的地方通過在該項目的根目錄,即作爲src
的同行target
。
不夠公平。現在我把它們放在哪裏來讓我的單元測試通過? – 2009-01-12 14:16:35