JUnit and Spring - code coverage % is wrong when using multiple Threads in test

时间:2016-04-25 09:20:58

标签: spring multithreading junit code-coverage eclemma

We tried to use a couple of code-coverage plugins for our spring project (EclEmma,Clover).

Both are providing wrong results regarding the coverage %.

The tests are using Spring's taskExecutor (thread pool).

All the code that the task executors threads executes does not count as covered.

Any ideas why?

1 个答案:

答案 0 :(得分:-1)

我刚刚遇到同样的问题,但考虑到这一点,JUnit / EclEmma如何知道或跟踪在并行运行的多个/其他线程上执行的代码?我的假设是它只适用于'主/当前'线程。单元测试以及覆盖的正确方法是隔离[作为方法]并测试在单独测试中在这些其他线程上执行的代码。说服自己的一种方法...在JUnit以调试模式运行时尝试断点。这也没有“工作”......在断点处踩到你可能会发现你没有在下一条指令处结束和/或另一个线程上的代码已经完成并且测试实际上已经完成了。