【问题标题】:jacocoData missing with EclEmma & AbstractTransactionalJUnit4SpringContextTestsjacocoData 缺少 EclEmma 和 AbstractTransactionalJUnit4SpringContextTests
【发布时间】:2012-04-27 22:16:01
【问题描述】:

我一直在尝试使用 EclEmma 2.1.0.201202261248 来衡量 DAO 的集成测试覆盖率。不幸的是,任何扩展 AbstractTransactionalJUnit4SpringContextTests 的测试(即任何实际使用部分 spring 框架的测试)都会引发以下异常:

07:35:11 错误 [main] (ASMLogger.java:72) - 抛出异常 异常消息无法解析属性:$jacocoData of: com.asentria.asm.persistence.krp.ProductData with params: : DataFilter{SerialNum:66,KeyNum:1967,Index1:1,Index2:2,HasPendingValue:null,OrderByDesc:null,OrderByAsc:null,Class:class com.asentria.asm.filter.ProductDataFilter} org.hibernate.QueryException:无法解析属性:$jacocoData:com.asentria.asm.persistence.krp.ProductData 在 org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:81) 在 org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:75) 在 org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1468) ...

我们有一个奇怪的持久性组合——1 个直接使用 Hibernate 的 spring 管理的上下文,以及一个不由 spring 管理但也使用 Hibernate 实现的 JPA 兼容的上下文。

我知道 EclEmma 正在注入 jacocoData 字段,但我不知道如何解决这个问题。

我将不胜感激任何建议,包括如何解决此问题的想法。

【问题讨论】:

  • 而且... eclemma 团队在 4 月 9 日的版本中解决了这个问题,使这个问题变得毫无意义。
  • 在我这边我仍然有同样的问题(使用不同的设置:Eclipse + ECLEmma 2.1.4 + Infinispan 配置了事务管理器),java.lang.RuntimeException:java.lang.NoSuchMethodException: com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBean.set$jacocoData([Z) (虽然我的测试用例自己运行良好,但只有使用 ECLEmma 时我才会收到此错误)
  • 这在很多时候仍然是个问题。我最终用 ant 检测我的代码,从 Eclipse 运行我的测试,然后再次从 ant 生成输出。似乎没有任何可靠的解决方法。

标签: eclipse spring eclipse-plugin emma


【解决方案1】:

尝试排除首选项中的所有问题包

Java/Code Coverage/Excludes

将 com.arjuna.* 添加到此设置后,我可以成功运行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2021-11-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2011-12-10
    相关资源
    最近更新 更多