代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

如何为NCOVER合并操作指定大量文件?

  •  0
  • Billy ONeal IS4  · 技术社区  · 14 年前

    我担心的是我会遇到麻烦 Shlemiel the Painter 问题,因为合并操作正在为每个测试解析大覆盖率文件。

    我可以将多个覆盖范围文件传递给 NCover.Reporting.Exe ,它实际上完成了合并,但是当我试图一次传递它们时,我遇到了操作系统对命令行长度的限制。

    NCover.Reporting 提供某种类型的输入覆盖率报告列表,我可以保存到一个文件中,并让它一次性合并所有报告?

    4 回复  |  直到 14 年前
        1
  •  1
  •   joe.feser    14 年前

    我会一次合并25-50个,最后,把它们合并在一起。

    我可以问一下,为什么每个测试都是单独运行的。您是在使用include特性来仅检测正在运行的代码,还是所有覆盖率文件都非常大?

    你也可以发邮件给支持,他们可能有更好的选择。

        2
  •  1
  •   Stephen Ward    14 年前

    @问题是你必须生成配置文件。理论上,他可以编写一个小助手程序,将目录中的所有文件添加到配置文件中,但您必须使用不带文件过滤器的目录名,即do

    myhelper.exe覆盖目录

    myhelper.exe coveragedirectory*.xml

        3
  •  1
  •   commondream    14 年前

    我们刚刚更新了NCover以更有效地处理NCover.Console下的多个覆盖运行。假设您每次都运行同一个应用程序,我会确保您已更新到NCover 3.4.12,并在脚本上使用//coverall选项运行NCover.Console,以便在每次启动应用程序时生成应用程序,而不是NCover。这将生成一个合并的XML文件,可以为您处理一些事情。

        4
  •  0
  •   wonderfulthunk    14 年前

    嗯,我决定的有点像斯蒂芬·沃德的回答。我把所有的报道文件放进一个目录然后运行 NCover.Reporting.exe Path\To\My\Directory\*.xml //s Merged.nccov .

    他没有得到复选标记,因为他的回答告诉我我不能在命令行上使用通配符是不正确的;实际上,通配符是

    不过,通过这个解决方案,我可以使每次测试后的运行速度比旧的merge快20%左右,这很好(覆盖率运行仍然是非覆盖率运行的四倍,但我们不需要为每个测试都运行覆盖率)

    当我尝试commondream的答案时,不幸的是,NCover会定期崩溃。我认为它不喜欢测试系统启动.NET1、1.1、2.0、3.0、3.5和4.0程序集,以及silverlight包和compact框架(我们的产品需要能够在所有这些类型的程序集上正确工作)。如果你不需要疯狂地运行这种东西,那么 //pn 他所描述的方案可能很管用。

    它要查找的根XML节点

    希望这对以后遇到类似问题的人有所帮助:)

    推荐文章