TeamCity对于JAVA的代码覆盖率我觉得弄得不好。

TeamCity开启EMMA测试会“智能”的对运行测试的Build Step加入部分步骤来完成代码覆盖的统计。其中有一个Coverage instrumentation parameters:可以设置,这个将是我们折腾的核心,一开始在使用它的默认值-ix -*Test*

注:如果开启EMMA后运行运行测试抛出java.lang.VerifyError异常可以参考,上一篇文章《java.lang.VerifyError运行时异常及处理方法

我们来看一下TeamCity开启EMMA后会做些什么

在编译后TeamCity会自动帮我们加入EMMA: Instrumenting classes

具体行为类似

   1: [08:29:22][compile] EMMA: Instrumenting classes
   2: [08:29:22][EMMA: Instrumenting classes] EMMA commandline: [-ix, -*Test*, -cp, C:\TeamCity\buildAgent\work\7c011ec2a3494774\test\UnitTest\build, -m, overwrite]
   3: [08:29:22][EMMA: Instrumenting classes] EMMA: processing instrumentation path ...
   4: [08:29:22][EMMA: Instrumenting classes] EMMA: instrumentation path processed in 47 ms
   5: [08:29:23][EMMA: Instrumenting classes] EMMA: [3 class(es) instrumented, 0 resource(s) copied]
   6: [08:29:23][EMMA: Instrumenting classes] EMMA: metadata merged into [C:\TeamCity\buildAgent\work\7c011ec2a3494774\coverage.em] {in 60 ms}

相关文章:

  • 2022-12-23
  • 2022-01-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2022-01-05
猜你喜欢
  • 2022-12-23
  • 2021-10-24
  • 2021-09-23
  • 2021-07-13
  • 2021-05-04
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案