2013-11-22 51 views
1

我试图将代码覆盖率合并到应用程序中。由于我使用VS Express,因此OpenCover看起来是最好的(只读)选项。 该应用程序是一个Silverlight Web应用程序,具有多项服务。我已经设法让silverlight代码覆盖范围与使用文档中提供的示例命令行一起工作。但是,当我尝试服务层的示例命令行时,它不起作用。它给将OpenCover与服务结合使用的语法

Service 'Application\Sample.Web.WCF\SampleService.svc' cannot be found - have you sp 
ecified your arguments correctly?

这是我通过输入:

OpenCover\OpenCover.Console.exe -target:"Application\Sample.Web.WCF\SampleService.svc" -service –register

我需要上缺少的是什么样的参数帮助。同样在使用手册的服务部分,它提到输入“本地服务”而不是“本地系统”。我在哪里输入?

而我该如何指向.pdb文件?

我看到一篇类似的文章,名为“我如何使用OpenCover钩入服务?”但我不明白如何/什么配置文件使用regsvr32预先注册,我也给予特定的服务或只是文件夹路径?

在此先感谢。

回答

0

您正在尝试使用语法针对Windows服务运行时,你所拥有的是一个应用程序,看起来IIS下运行(或iisexpress

服务层(.SVC),你有没有一个windows服务,但是一个wcf-web服务;使用与启动Silverlight应用程序相同的(类似)语法。

+0

谢谢Shaun,是的,我的应用程序针对IIS运行,所以我尝试了以下方法:OpenCover \ OpenCover.Console.exe -register:user“-target:C:\ Program Files \ Internet Explorer \ iexplore.exe”“ - targetargs:http://localhost/SampleServices/SampleService.svc“”-targetdir:Application \ Sample.Web.WCF \ Bin“ - 输出:opencoverSvcResult.xml 这不起作用。它给出了以下错误: 没有结果 - 没有与所提供的过滤器匹配的组件,这可能是由于缺少与过滤器匹配的组件的PDB,请查看输出文件并参考使用指南(Usage.rtf) –

+0

Web服务运行在IIS中,而不是在Internet Explorer中(它只是查看返回的输出) - 抱歉误导。使用iisexpress托管您的网站(更容易自动化),然后使用您的Silverlight应用程序进行锻炼。你有没有任何自动化的单元测试(这些是收集代码覆盖率的更好方法),集成测试非常难以设置。 –

+0

再次感谢肖恩,几乎在那里... 运行以下 - OpenCover \ OpenCover.Console.exe -register:user“-target:NUnit \ nunit.exe”“-targetdir:Application \ Sample.Web.WCF \ bin” -output:opencoverSvcResult.xml在运行NUnit测试用例时给了我一个输出,但在检查报告时,它提到了在NUnit应用程序上运行的服务文件的0%覆盖率。 任何想法我做错了什么? 真的很感谢耐心。 –

相关问题