代码之家  ›  专栏  ›  技术社区  ›  javydreamercsw

有没有办法用JaCoCo Java API测试jar文件?

  •  0
  • javydreamercsw  · 技术社区  · 7 年前

    我要从艾玛那里移民。到目前为止一切都很好。我正在努力解决的一个问题是EMMA代码中的一部分,它从一些依赖于主项目的子项目中插入一组jar文件。

    InstrProcessor processor = InstrProcessor.create();
    processor.setInstrPath(getFilePaths(jars), false);
    processor.setOutMode(OutMode.OUT_MODE_OVERWRITE);
    processor.setMetaOutFile(metadataFile.getAbsolutePath());
    processor.setMetaOutMerge(merge);
    processor.run();
    

    我为JaCoCo找到的最接近的是Instrumenter类,但似乎不接受文件只是输入流。JavaDoc中没有关于它工作的提示。有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Godin    7 年前

    引用 JavaDoc of a method org.jacoco.core.instr.Instrumenter#instrumentAll :

    检测存档文件的内容 . 所有其他文件都将不经修改复制。

    try (
      FileInputStream in = new FileInputStream("input.jar");
      FileOutputStream out = new FileOutputStream("output.jar");
    ) {
      instrumenter.instrumentAll(in, out, "input.jar");
    }
    

    这就是为什么 instrumentation of JAR files implemented JaCoCo Command Line Interface