我有大量的项目,每个项目至少有一个自动化测试套件。这些测试是在IAR的C模拟器上运行的。(我正在为Arm V6.60使用IAR嵌入式工作台。)
如果我从IDE运行这些测试可执行文件之一,我可以生成和查看代码覆盖信息。对于单个项目来说,这是可以的,但是通过手动运行每个项目来收集所有项目的信息实在太麻烦了。我希望能够运行我的构建并让它为所有测试套件生成代码覆盖信息。
根据我在EWARM_DebuggingGuide.pdf中发现的内容,我应该能够通过传递code代码覆盖插件来为可执行文件生成代码覆盖率:
--plugin C:\<IAR path>/common/plugins/CodeCoverage/CodeCoverage.dll以及应该将代码覆盖率信息转储到的文件:
--code_coverage_file C:\<test suite path>/CodeCoverageReport.log这就是我要调用的实际命令:
C:\<IAR path>/common/bin/CSpyBat.exe C:\<IAR path>/arm/bin/armproc.dll C:\<IAR path>/arm/bin/armsim2.dll C:\<test suite path>/Test.out --plugin C:\<IAR path>/arm/bin/armbat.dll --plugin C:\<IAR path>/common/plugins/CodeCoverage/CodeCoverage.dll --backend -B --endian=little --cpu=Cortex-M4 --fpu=VFPv4 --semihosting --code_coverage_file C:\<test suite path>/CodeCoverageReport.logC-Spy成功启动测试套件,我的测试结果被打印出来,但是没有创建代码覆盖文件。没有错误消息。
我遗漏了什么?
发布于 2018-04-18 10:40:54
我认为您的命令行中只有一个非常小的错误:
选项--code_coverage_file需要放在选项--backend之前。
我刚刚测试了EWARM 7.60.1和6.50.6代码覆盖文件的生成。这两个版本都很好。因此,我希望EWARM 6.60将以同样的方式运行。
背景
--backend之后的所有内容都不是由case评估的,而是由后端驱动程序(在本例中是模拟器armsim2.dll )计算的。代码覆盖率不是由模拟器生成的,而是由一个单独的插件(CodeCoverage.dll)生成的。此插件计算仅对插件可见的--code_coverage_file选项,如果它放在--backend参数之前。
https://stackoverflow.com/questions/41288514
复制相似问题