maven插件开发:获得集成测试的状态

时间:2013-03-07 07:26:21

标签: maven maven-plugin

我正在开发一个maven插件,用于在预集成测试阶段实例化和启动vmware vapp模板,确定集成测试的IP以及集成后测试阶段,以取消部署和删除vapp。但是:我只想在所有集成测试成功后删除vapp。

有没有办法在我的插件上下文中获取surefire或failsafe插件的状态?

感谢任何提示。

编辑1:

现在使用failafe插件的VerifyMojo中的代码来稍后检查failsafeResult。但我仍在寻找更好的方式。是否有任何构建上下文可用,如项目API?

 public void verify() throws IOException, XmlPullParserException {
    FileInputStream fos = new FileInputStream(summaryFile);
    BufferedInputStream bos = new BufferedInputStream(fos);
    String encoding;
    if (StringUtils.isEmpty(this.encoding)) {
        getLog().warn(
                "File encoding has not been set, using platform encoding "
                        + ReaderFactory.FILE_ENCODING
                        + ", i.e. build is platform dependent!");
        encoding = ReaderFactory.FILE_ENCODING;
    } else {
        encoding = this.encoding;
    }
    Reader w = new InputStreamReader(bos, encoding);
    FailsafeSummaryXpp3Reader reader = new FailsafeSummaryXpp3Reader();
    final FailsafeSummary summary = reader.read(w);
    failsafeResult = summary.getResult();
    w.close();
    bos.close();
    fos.close();
}

1 个答案:

答案 0 :(得分:0)

你不能像你所描述的那样去做吗?

  1. 在集成测试之前创建/调用目标,以便通过将目标绑定到pre-integration-test来启动VM。
  2. 在集成测试运行后创建/调用目标,以便通过将目标绑定到post-integration-test来停止VM。
  3. 这就是你在问题中的描述。

    如果集成测试失败,则步骤2)将不会被执行,因此,vapp将不会被取消部署/删除。