促进 C++库

……其中一个世界。 赫伯·萨特安德烈亚历山德雷斯库,C类++编码标准

运行Boost回归测试

在本地运行回归测试

在Boost上运行回归测试很容易克隆。

要运行库的回归测试,请运行Boostb2型实用程序<boost-root>/图书馆/<库>/测试目录。要运行单个测试,指定其名称(如中所示<boost-root>/图书馆/<库>/测试/Jamfile.v2)在上命令行。

请参阅得到已启动指南获取构建或下载帮助卡姆用于您的平台,并导航您的Boost分配。

要运行每个库的回归测试,请运行b2型<boost-root>/状态目录。

运行Boost。构建的回归测试,运行“蟒蛇测试_全部.py“来自<boost-root>/工具/build/v2/test目录。(需要Python 2.3≤版本<3.0。)

运行Boost的自动回归和报告

这将运行所有Boost回归测试并将结果报告给Boost社区。

要求

  • Python(2.3≤版本<3.0)。
  • Git(最新版本)。
  • 每个编译器至少有5 GB的磁盘空间测试。

分步说明

  1. 为要创建的分支创建新目录测试。
  2. 下载运行.py脚本到该目录中:
    1. 正常开放运行.py浏览器中的脚本。
    2. 单击原始按钮。
    3. 另存为运行.py在您刚刚创建的目录中。
  3. 运行“python run.py选项。。。[命令]"有这三个必需的选项,以及您希望雇用的任何其他人员:

    • --转轮=-你选择的名字在报告中确定您的结果1,2.
    • --工具集=-要测试的工具集具有.
    • --标签=-要测试的标记(即分支)。目前唯一有意义的标签是发展主人.

    例如:

    python run.py--runner=Metacomm--工具集=gcc-4.2.1,msvc-8.0--tag=develop

注释:如果您在防火墙/代理之后服务器,一切都应该“正常工作”。在极少数情况下如果没有,可以显式指定代理服务器参数,通过--代理人选项,例如:

python run.py。。。--代理人=http://www.someproxy.com:3128

选项

命令:清理,收集日志,获取源,获取工具,补丁,回归,设置,显示预览,测试,测试引导构建,测试清理,测试过程,测试-运行,更新源,上传日志选项:-h、 --帮助显示此帮助消息并退出--runner=跑步者跑步者ID(例如“Metacomm”)--comment=comment要插入报告中的HTML注释文件--tag=标记结果的标签--toolsets=toolsets要测试的工具集的逗号分隔列表--librarys=库要测试的库的逗号分隔列表--增量执行增量运行(不删除以前的二进制文件)--timeout=timeout指定单个测试的超时时间(分钟)运行/编译--bjam-options=bjam_options传递给回归测试的选项--bjam-toolset=bjam_toolset用于“bjam”可执行文件的引导工具集--pjl-toolset=pjl_toolset“process_jam_log”可执行文件的引导工具集--平台=平台--user=user Boost SVN用户ID--local=local boost tarball的名称--强制更新执行SVN更新(如果适用),而不是清除签出,即使在执行完整运行时--have-source既不进行tarball下载,也不进行SVN更新;习惯于主要用于测试脚本更改--ftp=上传结果的ftp ftp URL。--proxy=proxy HTTP代理服务器地址和端口(例如“http://www.someproxy.com:3128')--ftp-proxy=ftp_proxyFTP代理服务器(例如“ftpproxy”)--dart-server=dart_server要将结果发送到的dart服务器--调试级别=debug_level调试水平;控制调试量输出已打印--send-bjam-log发送回归运行的完整bjam日志--mail=将运行通知发送到的mail电子邮件地址--smtp-login=smtp_loginSTMP服务器地址/登录信息,位于以下格式:<用户>:<密码>@<主机>[:<端口>]--跳过测试不运行bjam;用于测试脚本更改

测试开发使用”--tag=开发",并测试主机使用"--tag=主“.或替换任何Boost你选择的树。

细节

回归运行程序将:

  • 下载最新的回归脚本。
  • 下载指定的测试工具源,包括促进。果酱,助推。构建和各种回归程序。
  • 从下载最新的Boost Git存储库到子目录中促进.
  • 生成b2型进程阻塞日志如果需要。(进程阻塞日志是一个实用程序,它从生成的日志文件中提取测试结果促进。内部版本)。
  • 运行回归测试,处理并收集结果。
  • 将结果上载到通用FTP服务器。

持续运行的报表合并流程将合并所有提交的测试运行并将其发布在各种位置.

高级使用

提供有关您的环境的详细信息

将回归结果显示在增强型报告,您可以考虑提供更多关于您自己和测试环境的信息。这个其他信息将在有关与跑步者ID关联的页面。

默认情况下,页面的内容只有一行来自评论.html文件运行.py目录,指定测试的平台。您可以将更详细的环境描述,例如硬件配置、编译器构建和测试时间表只需更改文件的内容。此外,请考虑提供Boost案件的姓名和电子邮件地址开发人员有特定于您的特定集合的问题结果。

增量运行

你可以跑步运行.py在里面增量模式只需将其传递给同名的命令行标志:

python run.py。。。--增量

修补Boost源

您可能会偶尔需要将在运行测试之前修改Boost代码库,不影响回归的自动性质过程。要在下实现此功能回归.py:

  1. 对源代码应用所需修改进行编码位于./boost_root单个子目录名为的可执行脚本补丁包(补丁_boost.bat在Windows上)。
  2. 将脚本放在运行.py目录。

驱动程序将检查是否存在补丁包脚本,如果找到,则在之后执行获取Boost源。

反馈

请发送有关本文件的所有意见/建议以及测试程序本身增压测试列表.

笔记

[1]如果你是使用不同的一组编译器(例如,早上针对Intel,晚上针对GCC当天),您需要提供不同的转轮id对于这些运行,例如。您的姓名-电话、和您的姓名-抄送.

[2]局限性报告格式/媒体的直接依赖性在您正在测试的编译器数量和您的跑步者id可用的空间量。如果您是为单个编译器运行回归,请确保选择一个足够短的id,它不会显著干扰报告的布局。您还可以在跑步者ID中使用空格以允许报表根据需要包装名称。

[3]如果--工具集选项,脚本将尝试使用平台的默认工具集(海湾合作委员会对大多数人来说基于Unix的系统)。

[4]默认情况下,该脚本在已知的环境中运行全模式:在每个运行.py调用中剩下的所有文件由上一次运行放置-包括的二进制文件成功构建的测试和库被删除,一切都重新从头开始。相比之下,在里面增量模式已经存在的二进制文件是保持不变,只有源代码的测试和库文件自上次运行后发生了更改,并且重新测试。

增量运行的主要优点是周转时间更短,但不幸的是,它们并不总是产生可靠的结果。代码库的某些类型的更改(尤其是b2测试子系统的更改)经常需要切换到完整模式一个周期,以便生成可信的报告。

作为一般准则,如果您负担得起,请在最好是全模式。