我们想测量代码覆盖运行在一个相当大的本地应用我们自己的自动化回归测试系统。 这是使用我们的应用程序的内置脚本一个复杂的,脚本化测试系统。 它有上千次的试验,并不会由MSTest的单元测试来代替。
虽然我们使用VS2012(高级版)为IDE目前它仍然编译与VS2010的编译器和库。 如果是为了让代码覆盖率要先决条件是可以改变越快。
我们可以做单独建立这个 - 插桩是没有问题的。
我只是困惑读取MS文档,这似乎都来自你正在运行使用其内置的测试框架单元测试的假设开始。 这时候,我不是在努力寻找的东西,实际上摆在首位谈到原生支持ALM的!
谢谢
的Visual Studio 2012的代码覆盖工具是测试执行系统完全分开(全面披露:我写的,但继承了我离开微软后的团队去掉了一些非常有用的功能)。 它从地面重写在VS高达2012以便动态地检测本机(86和x86-64)和托管代码(.NET和Silverlight),当它加载到过程,而不是在磁盘上修改的可执行文件。
你可以找到CodeCoverage.exe为“%ProgramFiles%\微软的Visual Studio 11.0 \团队工具\动态代码覆盖工具”。
为了收集数据:
CodeCoverage.exe collect /output:foo.coverage foo.exe foos_args
一个配置文件(有一个默认的名为CodeCoverage.config该目录)可以被指定为控制集合。
为了分析覆盖数据,你可以在Visual Studio 2012中打开foo.coverage或使用覆盖工具本身做了分析:
CodeCoverage.exe analyze /output:results.xml foo.coverage
注:仪表发生,.pdb文件必须发现你的模块。 既然你是与2010年建立,他们可能无法与2012的工作,DIA,所以你可能有2012的工具集来重建。 如果你没有看到你的覆盖分析预计,模块,传递/include_skipped_modules
到analyze命令; 会有一个“理”属性告诉你为什么模块被跳过(排除在外,没有调试信息等)。
编辑:此外,与以前的Visual Studio版本,2012的覆盖文件格式是完全独立的。 该模块和.pdbs不需要出现在分析时间。
我意识到这是一个古老的职位,但我相信答案仍然是相关的。
尽管我曾经有过在我手上C#中的事情,我真的不喜欢我所看到的,当我移动到Visual C ++。 此外,像你MSTests只有部分工作对我来说; 我已经习惯了有我自己的测试应用为好。
基本上我想要的是以下几点:
- 运行MS测试或EXE文件
- 获取代码覆盖率的权利在Visual Studio。
之后做一些研究,我发现VS当今企业支持此功能,以测试适配器。
如果你不是在VSE,我发现有一些其他的工具,每个用户提供一个独立的UI。 我个人不喜欢; 我想在Visual Studio我的报道权,最好是在Visual Studio社区版。
所以,我决定建立这个插件我和 - 虽然它不是,与成熟VSE - 它的伎俩我。
- 我写了一个VSIX代码覆盖工具https://github.com/atlaste/CPPCoverage 。 基本上,它管理在Visual Studio中高亮显示,生成一个可点击的报告,并在解决方案资源管理器集成。
- 对于覆盖测量自己,我以前用https://opencppcoverage.codeplex.com/ 。 基本上,可以让您在任何可调试(本机)的可执行代码进行覆盖测试。 现在,我用我自己的代码覆盖量具(这是上面的开放,以及来源)。