- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Arquillian 和 TestNG 测试传统的大型 EAR (app.ear) 应用程序。为了运行测试,我已将可测试的 war 文件 (test.war) 添加到现有的 app.ear 中,并远程部署在 WildFly 10 服务器上。
@Deployment
public static EnterpriseArchive createDeployment(){
return ShrinkWrap.createFromZipFile(EnterpriseArchive.class, new File("../earapp/target/earapp-0.0.1-SNAPSHOT.ear"))
.addAsModule(Testable.archiveToTest(ShrinkWrap.create(WebArchive.class, "test.war")
.addClass(CurrencyConverterTest.class)
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")));
}
我的要求的下一部分是在测试运行后获取代码覆盖率报告。为此,我使用 Jacoco 并通过 Jacoco Maven 插件运行它。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
</plugin>
app.ear 已部署,甚至测试运行良好,但在生成报告时,Jacoco 失败并出现异常“IllegalStateException:Jacoco 中类的执行数据不兼容…… ...”
仅包含测试用例的类会出现异常。如果我在 Jacoco Maven 插件中使用排除标记排除该类 (CurrencyConverterTest.class),异常就会消失,但 Jacoco 生成的报告不包含任何数据。我还检查了 jacoco.exec,据我所知它包含有效数据。
由于我无法共享我正在使用的专有代码,因此我在 github 上创建了三个简单的项目来模拟相同的代码。
对我来说,Jacoco 代码中似乎存在一些错误,但我也可能是错的。请帮帮我。
更新: 构建在 git repo 上共享的项目的步骤
第1步:检查所有三个项目并将其作为eclipse项目导入到eclipse中。
第 2 步:为项目 1(货币转换器)运行 Maven 命令clean inSTLl
第 3 步:为项目 2 (earapp) 运行 Maven 命令clean package。这将在目标目录中创建一个ear文件。
第 4 步:在本地计算机上以独立模式启动 WildFly 10。
第 5 步:为项目 3(eartest)运行 Maven 命令全新安装。这将使用步骤 3 中生成的 Ear 并将其部署在 WildFly 10 应用程序服务器中并运行测试。
最佳答案
不幸的是,您的示例无法构建:
[ERROR] Failed to execute goal on project eartest:
Could not resolve dependencies for project com.sg.eartest:eartest:jar:0.0.1-SNAPSHOT:
Could not find artifact org.jboss.osgi.metadata:jbosgi-metadata:jar:3.0.1.Final in central (https://repo.maven.apache.org/maven2)
如果它位于单个 GitHub 存储库中,使用它也会更简单。
但是:
确保在所有测试模块中使用完全相同版本的 JaCoCo。
并确保被测试的 JVM 正常终止,否则您可能会收到损坏的“jacoco.exec”文件,因为默认情况下它是在 JVM 关闭期间保存的。在 JaCoCo 的早期版本中,此类损坏的文件可能会导致
IllegalStateException: Incompatible execution data for class...
(根据https://github.com/jacoco/jacoco/issues/95#issuecomment-17271597)
JaCoCo 版本 0.7.7 中改进了文件被截断时的错误消息 - https://github.com/jacoco/jacoco/pull/397使用最新发布的版本是一个很好的做法,因为它们带来了错误修复和改进 - http://www.eclemma.org/jacoco/trunk/doc/changes.html
最后 - 似乎您的测试完全位于与被测主代码不同的模块中。 “report” mojo 为当前模块的类创建报告。使用“report-aggregate”来聚合跨模块的覆盖范围 - 其文档可以在 http://www.eclemma.org/jacoco/trunk/doc/report-aggregate-mojo.html 找到。 https://groups.google.com/forum/#!msg/jacoco/8zjkSseaxD4/QOux-Ws-AgAJ中提到了一些例子
关于java - 针对现有耳朵运行时,Jacoco 出现 “IllegalStateException: Incompatible execution data for class in…” 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259246/
我有一个自定义类 Custom . public class Custom { private Long id; List ids; // getters and setters } 现在
我有一个 Tree 对象,其中包含 Tree 对象的子对象 (HashMap) 等等。 我需要通过 numericPosition 变量过滤对象。 例如: Tree mapTreeRoot = new
我是编码的新手,在尝试了多种解决方案后,我仍然无法弄清楚为什么我的做法是错误的。这是我的完整代码: public class Student { private String name; pr
我在使用泛型时遇到问题。我不知道如何将 OnCallbackWrapper 传递给 CallbackWrapper 过程。我在以下示例中收到“不兼容类型”错误: unit uTest; interfa
我想实现yin-yang puzzle在 haskell 。这是我的尝试(不成功): -- The data type in use is recursive, so we must have a n
这个问题已经有答案了: What does "Incompatible types: void cannot be converted to ..." mean? (1 个回答) 已关闭2 年前。 我
在以下情况下,我无法理解 Java 泛型的行为。 拥有一些参数化接口(interface),IFace ,以及某个类上的方法,该方法返回扩展此接口(interface)的类,> Class getCl
我成功地将我的日期从 JDateChooser 获取到带有以下行的字符串中: String d1 = ((JTextField)jDateChooser1.getDateEditor().getUi
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在编写这段使用大数字的代码: import java.math.*; import java.util.*; import java.lang.*; public class main {
我首先使用 JXL 修改 POI 创建的一个 xls 文件。之后我将尝试使用 POI 读取该文件。在 POIFSFileSystem 创建的那一刻 poFileSystem = new POIFSF
这里是完全的 Java 菜鸟。学校刚刚开学,我正在参加 APCS。我们的老师向我们展示了这个名为 Scanner 的很酷的类(class),但他还没有教过我们。我觉得这很酷,所以我决定进一步研究它。在
我见过很多情况,其中声明了一个字节,但来自类似方法的值intToByte 或 StringToByte 被转换为字节,因为程序员提供了一个十六进制-值,一个整数-或字符串值。 我试图将实际的字节值分配
在这个类中,我想返回整个数组列表,而不是作为单个元素。但是,我在编译时收到错误“不兼容类型”。我在这里做错了什么?感谢您的帮助!! import java.util.ArrayList; public
我想设置一个新的 mysql 数据库从属数据库,运行比主数据库 => 5.0.75 更新版本的 mysql => 5.1.41,据我所知,这通常应该没有问题。然而,事实证明设置复制失败了,因为我在 5
我相信conftest缺少正确的标志,但我无法通过查看mkmf.log的内容来找出问题,这些内容包含在下面。 任何想法将不胜感激! 我正在编译用于 OpenWRT 路由器 (mips) 使用 ruby
我正在尝试实现一个呼吸优先的搜索,用于搜索罗马尼亚城市的人工智能程序。 但是,我在这方面遇到了很多麻烦,最新的错误是 searches.java:153: error: incompatible ty
我有编译错误: Error: incompatible types: Object cannot be converted to String. 在行 String buf = it.next();
private byte[] decode_text(byte[] image) { int length = 0; int offset = 32; for(int i=0;
这个问题在这里已经有了答案: Why won't this generic java code compile? (4 个答案) 关闭 9 年前。 给定这个简单的类: import java
我是一名优秀的程序员,十分优秀!