【问题标题】:Syntax for using OpenCover with a service将 OpenCover 与服务一起使用的语法
【发布时间】:2013-11-22 10:24:31
【问题描述】:

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

服务 'Application\Sample.Web.WCF\SampleService.svc' 找不到 - 你有吗
正确地证明了你的论点?

这是我传递的输入:

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

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

我如何指向 .pdb 文件?

我看到了一篇类似的文章,名为“如何使用 OpenCover 连接到服务?”但我不明白如何/使用 regsvr32 预注册什么配置文件,我是提供特定服务还是只提供文件夹路径?

提前致谢。

【问题讨论】:

    标签: c# wcf silverlight nunit opencover


    【解决方案1】:

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

    您拥有的服务层(.svc)不是windows服务,而是wcf-web服务;使用与启动 silverlight 应用程序相同(相似)的语法。

    【讨论】:

    • 感谢 Shaun,是的,我的应用程序针对 IIS 运行,所以我尝试了以下方法: OpenCover\OpenCover.Console.exe -register:user "-target:C:\Program Files\Internet Explorer\iexplore .exe" "-targetargs:localhost/SampleServices/SampleService.svc" "-targetdir:Application\Sample.Web.WCF\Bin" -output:opencoverSvcResult.xml 这不起作用。它给出以下错误:没有结果 - 没有检测到与提供的过滤器匹配的程序集这可能是由于缺少与过滤器匹配的程序集的 PDB 请查看输出文件并参考使用指南(Usage.rtf)跨度>
    • Web 服务在 IIS 中运行,而不是在 Internet Explorer 中(仅查看返回的输出)- 抱歉误导。使用 iisexpress 托管您的网站(更易于自动化),然后使用您的 silverlight 应用程序来运行它。您是否有任何自动化单元测试(这些是收集代码覆盖率的更好方法),集成测试是出了名的难以设置。
    • 再次感谢肖恩,快到了... 运行以下命令 - OpenCover\OpenCover.Console.exe -register:user "-target:NUnit\nunit.exe" "-targetdir:Application\Sample。 Web.WCF\bin" -output:opencoverSvcResult.xml 在运行 NUnit 测试用例时给了我一个输出,但在检查报告时,它提到在 NUnit 应用程序上运行的服务文件的覆盖率为 0%。知道我做错了什么吗?非常感谢您的耐心。
    • 你的targetargs是什么?
    • 我采用了最新版本的 OpenCover,并意识到你在 IIS 上运行它的意思。使用该文档中给出的语法,它工作得很好。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多