TestCocoon安装使用小记

本文介绍了TestCocoon的基本功能及其使用流程,包括安装步骤、命令行与Visual Studio环境下的应用实例,帮助读者快速掌握这款插桩工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、 TestCocoon介绍

TestCocoon官方主页可以通过Google搜索到。它是一款支持C++、c#的插桩工具,支持多种编译器,包括VC、Intel C++、GCC、G++等。并提供了执行结果显示的软件。

 

二、 基本流程

TestCocoon主要分为两个处理过程,插桩、结果展示。其中,插桩过程中会产生两个文件,一个是csmes文件,另一个是exe文件,csmes文件相当于一个描述信息文件,比如记录有哪些源码文件,以及某些exe输出信息代表什么含义等等,exe文件就是我们的可执行程序,是由插桩后代码生成的,通过运行该exe文件会生成一个记录执行过程的结果文件,csexe文件;当将csmes、csexe文件在结果浏览程序中打开后,就可以看到具体的覆盖率信息,代码的执行信息。

 

三、 TestCocoon的安装

我下载的版本是1.6.12,文件名为:TestCocoonSetup_1_6_12_x86.exe。

在安装该程序前,前确保VS已经安装成功。双击该安装程序,启动安装过程,安装过程中会弹出一个配置界面如下:

该配置页中,最关键的地方是选择IDE的类型,如果你的机子只装了一个版本的VS,那么这里应该是正确的,如果你安装了多个版本的VS,这里就需要你选择将要安装的IDE版本。

 

四、 简单使用

程序安装完成后,会在开始\程序菜单中添加TestCocoon菜单信息,首次使用我们需要首先运行菜单项Build Environment,这时会弹出多个环境选择,我选择的是VS2010项,这个部分与各位安装情况有关系,但问题应该不大。执行完成后,应该会进入如下界面状态:

这个时候输入cscl,会提示该命令的使用参数信息。

 

为了简单介绍,我写了一个简单的代码,代码如下:

#include <string>
#include <iostream>

int main(int argc, char* argv[])
{
          __coveragescanner_install(argv[0]);

        std::cout<<"Input X:";
        std::cin>>x;
 
        if(x<5)
                k=5;
        else if(x<10)
                 k=6;
        else
                  k=7;
  
         k = 8;
         return 0;
}

该该代码文件置于cscl所在目录下,运行命令cscl --cs-on --cs-branch 代码文件名称,命令完成后,生成csmes文件和exe文件,当前还有其它文件,不用关心,运行exe文件,生成csexe文件,至于如何展示结果信息,这里不做介绍。

 

五、 VS中使用TestCocoon

虽然命令行下可以完成所有的事情,但对于一个习惯了IDE的人来说,还是太复杂了。TestCocoon提供了VS2005、VS2008、VS2010的插件,设置完成后,只要在待处理的工程或工作区上直接Build即可,非常方便。

我机子安装了VS2008、VS2010两个版本,VS2008是中文版,VS2010是英文版本,安装结果显示VS2008安装失败,原因在TestCocoon官方论坛上有讨论,但我们去深究,VS2010安装非常顺利,但首次使用发现没有效果。

我的操作过程如下:

首先,打开工具菜单下代码覆盖设置对话框,点击确定开启插桩处理按钮;

然后,在工程上点击Build;

编译正常,但结果不对,运行exe文件后,没有csexe文件生成。所以需要插桩错误原因,我在Output窗口中看到很多提示,说某些参数不能被识别,所以忽略,这些参数恰恰都是TestCocoon中cscl使用参数, 所以我怀疑TestCocoon的cl没有被调用到,打开工程属性查看目录信息,发现TestCocoon下的cl路径确实被设置了,并且会优先查找,那是什么原因?原因不清,所以我就试着先去掉了再重新编译,发现和刚刚结果一样,这也更验证我的猜想了,我再一次将目录设置回去,再重新编译,奇迹发生了,编译一切正常了。

最后,我猜想原因可能是默认的那个设置没有真正对工程起作用,而重新设置后才真正起作用了。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值