使用mstest测试.NET Web服务时,如何收集代码覆盖率?

使用mstest测试.NET Web服务时,如何收集代码覆盖率?,.net,web-services,code-coverage,mstest,.net,Web Services,Code Coverage,Mstest,我想使用MSTest不仅收集经典单元测试的代码覆盖率,还收集针对Web服务的调用的代码覆盖率。我正在使用带有最新更新的Visual Studio 2013 我已经有了源代码和二进制文件(包括PDB文件,如果需要的话),但不幸的是,我的尝试到目前为止没有成功 我试图在测试项目中配置.runsettings文件,以指向Web服务二进制文件可用的目录,并将SymbolSearchPath设置为该目录: ... <CodeCoverage> <ModulePaths>

我想使用
MSTest
不仅收集经典单元测试的代码覆盖率,还收集针对Web服务的调用的代码覆盖率。我正在使用带有最新更新的Visual Studio 2013

我已经有了源代码和二进制文件(包括
PDB
文件,如果需要的话),但不幸的是,我的尝试到目前为止没有成功

我试图在测试项目中配置
.runsettings
文件,以指向Web服务二进制文件可用的目录,并将
SymbolSearchPath
设置为该目录:

...
<CodeCoverage>
    <ModulePaths>
        <Exclude>
            <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
        </Exclude>
        <Include>
            <ModulePath>\\AValidPathTo\My.dll</ModulePath>
        </Include>
    </ModulePaths>
</CodeCoverage>

<SymbolSearchPaths>
    <Path>\\AValidPathTo\My\Binaries</Path>
</SymbolSearchPaths>
...
。。。
*CPPUnitTestFramework*
\\AValidPathTo\My.dll
\\AValidPathTo\My\Binaries
...
代码覆盖率似乎忽略了这些设置-我确保通过Test=>选择了正确的.runsettings文件

我的第二次尝试是按照以下-摘录中描述的步骤进行:

  • 在本地复制所需的产品二进制文件、产品PDB和测试二进制文件
  • 插入产品二进制文件:a.打开Visual Studio 2005命令提示符(启动|所有程序| Microsoft Visual Studio 2005 | Visual Studio工具| Visual Studio命令提示符)。 b、 更改到二进制文件所在的目录 c、 对所有二进制文件执行“vsinstr–coverage”。e、 g.如果您的二进制名称为“coolproduct.dll”,则键入“vsinstr–coverage coolproduct.dll”
  • 启动代码覆盖率监视过程a。返回上一个命令提示符 b、 键入“vsperfcmd–start:coverage–output:outputFilename.coverage”
  • 执行测试a。对于自动测试,导航到测试二进制文件所在的目录并执行“mstest/testcontainer:TestDll.dll”。 b、 运行手动测试(如果有)
  • 结束代码覆盖率监视过程a。在前面打开的命令提示符中,键入“vsperfcmd–shutdown”。这将关闭覆盖率监视器并将覆盖率数据保存到磁盘
  • 不幸的是,这也不起作用-在重新设计签名的DLL(这是一个必要的附加步骤)之后,我得到了一个
    .coverage
    文件,其中没有任何数据(也没有错误)


    使用
    MSTest
    收集web服务调用的代码覆盖率的步骤是什么?

    潜在的愚蠢问题是:MSTest运行单元测试,您已经编写了单元测试来测试您的web服务?@PeterRitchie-是的。原因是我们不满意使用其他工具(如soapUI、WcfStorm等)创建测试所需的时间。使用
    mstest
    我们希望从与Visual Studio的紧密集成中获益。我们还计划使用
    MS测试管理器执行此类测试,根据文档,这不应该是一个问题。然而,如果我们完全走错了路,那么其他的建议是非常受欢迎的。这没有帮助吗?也许您需要升级VisualStudio。你用的是2005年还是仅仅是博客上的文章?VS2005已经快10岁了@Mick-很抱歉,我没有提到这个版本,我正在使用VS2013的最新更新。您提供的链接没有帮助,因为它是用于单元测试的(我们已经使用它来确定代码覆盖率)。我正在寻找一个测试web服务方法的解决方案。我不明白为什么不能在web服务方法上使用单元测试。您可以实例化web服务类并在单元测试中调用该方法。当然,这不会测试序列化,但是您可以为此创建单独的测试。