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

.net 如何为NCOVER合并操作指定大量文件?,.net,ncover,.net,Ncover,我有一个大型验收测试套件,它可以运行源应用程序数千次,为每次运行创建一个NCOVER报告。在每次测试之后,它将生成的代码覆盖率报告合并到整个应用程序的大型“主”覆盖率报告中 我在这里担心的是,我遇到了一个问题,因为合并操作正在解析每个测试的大覆盖率文件 我可以将多个覆盖率文件传递到NCover.Reporting.Exe,该文件实际上会进行合并,但当我尝试同时传递所有覆盖率文件时,我遇到了操作系统对命令行长度的限制 NCover.Reporting是否提供了某种类型的输入覆盖率报告列表,我可以将

我有一个大型验收测试套件,它可以运行源应用程序数千次,为每次运行创建一个NCOVER报告。在每次测试之后,它将生成的代码覆盖率报告合并到整个应用程序的大型“主”覆盖率报告中

我在这里担心的是,我遇到了一个问题,因为合并操作正在解析每个测试的大覆盖率文件

我可以将多个覆盖率文件传递到
NCover.Reporting.Exe
,该文件实际上会进行合并,但当我尝试同时传递所有覆盖率文件时,我遇到了操作系统对命令行长度的限制


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

我会一次合并25-50个报告,最后将它们合并在一起

请允许我问一下,为什么要单独运行每个测试。您是在使用include功能只插入正在运行的代码,还是所有的覆盖率文件都非常大


您也可以通过电子邮件发送支持,他们可能有更好的选择。

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

请允许我问一下,为什么要单独运行每个测试。您是在使用include功能只插入正在运行的代码,还是所有的覆盖率文件都非常大


您也可以通过电子邮件发送支持,他们可能有更好的选择。

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

myhelper.exe覆盖目录

不是

myhelper.exe覆盖目录*.xml


命令行长度限制是DOS1.0的一项“功能”,因此也是内置于windows中的仿真器的一项“功能”。您尝试过使用powershell吗?

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

myhelper.exe覆盖目录

不是

myhelper.exe覆盖目录*.xml


命令行长度限制是DOS1.0的一项“功能”,因此也是内置于windows中的仿真器的一项“功能”。您尝试过使用powershell吗?

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


请随时将电子邮件发送至support@ncover.com如果需要,我们可以帮你解决。请务必提及此url。

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


请随时将电子邮件发送至support@ncover.com如果需要,我们可以帮你解决。一定要提到这个url。

好吧,我所决定的有点像斯蒂芬·沃德的答案。我将所有覆盖率文件放入一个目录,并运行
NCover.Reporting.exe Path\到\My\directory\*.xml//s Merged.nccov

他没有得到复选标记,因为他的回答告诉我我不能在命令行上使用通配符是不正确的;事实上,通配符是NCover识别该目录中XML文件的唯一方法。我认为他已经习惯了Unix世界(考虑到他的回答中有一些Unix FUD),在这个世界中,shell负责处理通配符。windows shell不尝试扩展通配符,因此我们没有遇到长度限制

但是,通过这个解决方案,我能够在每次测试后使我们的运行速度比旧的merge快20%,这很好。(覆盖运行的时间仍然是非覆盖运行的四倍,但我们不需要为每个测试运行覆盖)

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

当我尝试joe.feser的答案时,不幸的是我无法确定NCover报告设置文件的格式。报告工具接受的XML上有大量文档;除了根XML节点之外,它会查找。它拒绝识别我生成的任何XML文件,因为根节点的名称不正确;我假设它是针对某种我不知道的DTD形式进行验证的。如果有人想发布一个示例文件,请继续


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

好吧,我所决定的有点像斯蒂芬·沃德的答案。我将所有覆盖率文件放入一个目录,并运行
NCover.Reporting.exe Path\到\My\directory\*.xml//s Merged.nccov

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