Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jacoco intstrumentation“字段上缺少@CsvField注释”_Java_Teamcity_Jacoco_Jsefa - Fatal编程技术网

Java Jacoco intstrumentation“字段上缺少@CsvField注释”

Java Jacoco intstrumentation“字段上缺少@CsvField注释”,java,teamcity,jacoco,jsefa,Java,Teamcity,Jacoco,Jsefa,我正在尝试使用TeamCity CI工具的Jacoco代码覆盖率分析器插件,但是有一些类在被Jacoco检测时失败,从而导致错误: java.lang.annotation.AnnotationFormatError:字段com.myApp.MyClass上缺少@CsvField注释。$jacocData 我正在使用JSefa库将对象序列化为csv,我的测试涵盖了序列化,但是当尝试使用Jacoco coverage runner运行测试时,我收到了提到的错误,它抱怨Jacoco instrume

我正在尝试使用TeamCity CI工具的Jacoco代码覆盖率分析器插件,但是有一些类在被Jacoco检测时失败,从而导致错误:

java.lang.annotation.AnnotationFormatError:字段com.myApp.MyClass上缺少@CsvField注释。$jacocData

我正在使用JSefa库将对象序列化为csv,我的测试涵盖了序列化,但是当尝试使用Jacoco coverage runner运行测试时,我收到了提到的错误,它抱怨Jacoco instrumentation应该创建一个名为JacocData的字段


我知道我可以跳过这些类,但我不是想要的,因为我会失去它们的覆盖度量。

< P>我不知道Apache JSEFA是什么意思:在Apache软件基金会找不到这样的名字,能够找到一个相当古老的项目。但它不属于Apache软件基金会,甚至那些使用APACHE许可证的软件。 在任何情况下,最有可能的情况是您正面临

我的代码使用反射。为什么我用JaCoCo执行时失败了? 为了收集执行数据,JaCoCo对测试中的类进行指令插入,这将向类中添加两个成员:一个私有静态字段$jacocdata和一个私有静态方法$jacoinit。两个构件都标记为合成构件

请更改代码以忽略合成成员。无论如何,这是一个很好的实践,因为Java编译器在某些情况下也会创建合成成员

i、 您称之为JSefa的库不会忽略合成字段,而应该忽略

因此没有太多选择:

这两个库都应该修复。检查库的版本-可能您使用的是旧版本,而这已在更新版本中修复?如果未修复,则向库供应商报告问题。 或者不使用此库/使用其他库执行相同操作 或者类应该被排除在代码覆盖率的计算之外
你是对的,JSefa不是Apache项目,我正在相应地更新这个问题