【发布时间】:2013-03-08 21:21:08
【问题描述】:
根据文档和邮件线程,我看到了 3 种将 maven 项目注入我的 mojo 的方法:
/**
* Project instance
*
* @parameter default-value="${project}"
* @required
* @readonly
*/
private MavenProject project;
@Component
private MavenProject project;
@Parameter( expression = "${project}" )
private MavenProject project;
但无论我选择其中哪一个,当我根据我在 maven 文档中找到的示例运行单元测试时,项目始终为空。
public void testMojoGoal() throws Exception {
File testPom = new File(getBasedir(),
"src/test/resources/unit/basic-test/sample-sh-project-config.xml");
ShunitResourcesMojo mojo = (ShunitResourcesMojo) lookupMojo("prepare",testPom);
assertNotNull(mojo);
mojo.execute();
}
mojo 执行包含(并失败)
Validate.notNull(project);
【问题讨论】:
-
我怀疑这只是测试工具的行为,其中任何一个都可以在实际执行中起作用。如果是这种情况,我应该如何在我的测试设置中最好地模拟项目。
标签: unit-testing maven mojo