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