我正在寻找严格的Fortran代码覆盖工具。我们正在开发一个包含数万行代码的大型项目,以及固定和自由形式的数十个和几十个fortran文件。我们使用{% for photo in page.project_content.full_width_image %}
<div class="fullwidth-image content-block">
<img src="{{ photo }}">
</div>
{% endfor %}
{% for photo in page.project_content.center_image %}
<div class="center-image content-block">
<img src="{{ photo }}">
</div>
{% endfor %}
{% for photo in page.project_content.split_left_image %}
<div class="split-image-left content-block">
<img src="{{ photo }}">
</div>
{% endfor %}
{% for photo in page.project_content.split_right_image %}
<div class="split-image-right content-block">
<img src="{{ photo }}">
</div>
{% endfor %}
{% for content in page.project_content.text_content %}
<div class="text-block content-block">
{{ content | markdownify }}
</div>
{% endfor %}
编译器。我无法找到能够为这种规模的项目提供深入反省的工具。
我的主要需求是为我们的项目创建不同配置/输入的多个运行,并真正分析它们是相同/不同的。这意味着运行被保存为某种可以查询和使用的数据意识格式。
简单的代码覆盖工具(例如英特尔ifort
提供的工具)是不够的。这仅仅表明行了哪些行,哪些行不行。虽然这是有用的信息,但我需要更进一步,比较两个不同的代码覆盖率以编程方式。
我真的对英特尔福特充满希望,特别是熟悉各种命令等等。几周前,当我看到内置的差异覆盖工具{{1}时,我认为我击中了金块}}。遗憾的是,文档记录很少,我提出的问题in StackOverflow和the official Intel Fortran forum几乎没有回复。这向我表明该工具尚未充分开发,很可能不符合我们的需求。
因此,我呼吁SO社区。 Fortran是古老的,毫无疑问,但是有足够的遗留代码/项目来提供彻底的代码内省有用且确实是必要的。有没有其他人遇到类似问题的大型意大利面条,如Fortran代码项目需要清理和测试?有哪些高级程序代码覆盖工具可以让人们有效地解决问题?
由于
答案 0 :(得分:1)
要比较不同运行的覆盖率,我建议在单独的 XML 格式文件中输出每次运行的覆盖率报告。
codecov
(英特尔)和 gcov
(GNU,需要像 gcovr
这样的附加工具)都可以生成 XML 格式的覆盖文件。确切的工作流程取决于您选择的工具。
拥有 XML 文件后,您就可以与标准覆盖率分析工具进行交互。诸如 pycobertura (github.com/aconrad/pycobertura) 之类的工具应该可以满足您在不同执行情况下比较覆盖率的要求。如果您正在测试单元测试套件的覆盖率,它们也可用于生成“覆盖间隔”。