C++ cpp的代码覆盖率

C++ cpp的代码覆盖率,c++,visual-studio-2010,gcc,code-coverage,jenkins-plugins,C++,Visual Studio 2010,Gcc,Code Coverage,Jenkins Plugins,[我对VisualStudio环境非常陌生。在与VisualStudio合作2-3天后,我对它有了一些了解。] 嗯。我在一个测试团队工作。我只想为VisualStudio2010中开发的cpp代码设置一个代码覆盖率。我只想问两个疑问 1.我的公司购买了visual studio 2010 ultimate edition,使用该版本,我能够为使用visual studio中的测试项目模板创建的示例测试项目(.dll)生成代码覆盖率 这里的问题是,开发人员使用 cppunit作为.exe。那么,我

[我对VisualStudio环境非常陌生。在与VisualStudio合作2-3天后,我对它有了一些了解。]

嗯。我在一个测试团队工作。我只想为VisualStudio2010中开发的cpp代码设置一个代码覆盖率。我只想问两个疑问

1.我的公司购买了visual studio 2010 ultimate edition,使用该版本,我能够为使用visual studio中的
测试项目
模板创建的示例
测试项目(.dll)
生成代码覆盖率

这里的问题是,开发人员使用 cppunit作为
.exe
。那么,我是否能够获得的代码覆盖率 一个
.exe
(启用探查器)也使用通常的方法获取 visual studio ultimate edition中的代码覆盖率。或者我应该问一下 让他们使用微软的单元测试来编写单元测试 框架(即.dll)。我只是不能简单地说去做,我需要展示 他们是这样做的真正理由

2.我的第二个想法是,有更多的开源工具可以为使用gcc或g++编译的cpp获取代码覆盖率。因此,我考虑使用g++编译cpp代码,并使用开源工具来获得代码覆盖率。这是个好主意吗

当我和一位高级开发人员分享这个想法时,他说有很多 更多的cpp代码设计为特定于MSDN,你不能用这种方式。如果 如果你想这样做,你应该使代码跨平台兼容,或者 便携式[我不懂的东西]

所以这里是最后一件事,我试图向他们展示一个即时解决方案,使用我们拥有的VisualStudioUltimate版本获得代码覆盖率。之后,我会在不购买任何付费工具(如ncover、squish coco、bullseye coverage等)的情况下寻找实现这一目标的最佳方法,所以我选择了上述第二种选择。
我的最终目标是在Jenkins中显示最终报告,以便每个人在构建过程后都能看到它,而无需任何手动干预[我想使用visual studio是不可能的]。

jenkins有一个名为MSTestRunner插件的插件,它可以生成单元测试报告,但不能生成覆盖率报告

我想我已经说清楚了。如果这是一个重复的问题,请提及我的链接。提前感谢

我忘了说这个,我还找到了一个叫做vcxproj2cmake的工具,我想从名字本身就可以看出来。因此,如果我使用这个工具生成一个与实际vcxproj对应的cmake,我是否能够得到我的第二个选择

注意:

至于现在,我创建了一个测试项目(比如说,SampleTestProject),正如方法1中所说,它已经 只有一种测试方法(比如说,TestMethod),它反过来会触发所有编写的单元测试 通过以下提到的方法使用CPPFUnit

  • 我要求开发人员将
    .exe
    (他们已经编写了cppunit单元测试)作为
    .dll
    以类似它的特定格式制作 应该包含一个名为TestInitiator的类,该类包含
    CppUnit::TextUI::TestRunner
    (触发 CPP单元测试,理想情况下,应提供此方法,以便触发CPP单元测试,并使用套件中定义的所有测试方法
  • SampleTestProject中,上述TestMethod调用此方法,从而获得代码覆盖率

  • 通过这种方式,代码覆盖率得到了很大的提高,对代码的修改非常少。希望您喜欢

    据我所知,你不能在VisualStudio中使用GCC或G++。谢谢你的评论,兄弟,不是在VisualStudio中,而是通过命令行这样一种独立的方式。我这么说是因为源代码没有正确更改。@enedil我很确定您可以。Visual Studio应该能够使用其他编译器,即使只是通过插件。我的问题有什么解决方案吗?仅供参考,较新版本的Visual Studio附带了一个新的测试运行程序,允许第三方集成到Visual Studio中。免责声明,我受雇于微软