本主题说明如何将 C/C++test 连接到源码控制库。
各节内容包括:
关于 C/C++test 的源码控制支持
任何插入 C/C++test 环境的源码控制系统都可用于管理源文件和测试文件。
如果您的团队使用下面列出的指定支持的源码控制系统之一并执行本主题后面所述的必要配置,C/C++test 可以:
- 使用来自源码控制的文件修订数据来确定作者身份(自动将测试失败和违反政策的情况分配给负责的团队成员,以及按作者和/或修改时间限制测试范围)。有关详细信息,请参见配置任务分配和代码作者设置 。
- 在测试之前从源码控制更新项目(如果启用了测试配置的通用> 源码控制> 更新项目设置)。
C/C++test 支持以下源码控制系统:
类型 | 测试版本 |
---|---|
Git | 1.7, 1.8, 1.9, 2.x |
Microsoft Team Foundation Server | 2012, 2015, 2017, 2018, 2019 |
Perforce | 2006.2, 2015 |
Subversion (SVN) | 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13 |
您可以使用源码控制 API 与其他源码控制系统集成。有关详细信息,请参见添加自定义源码控制集成 。
Subclipse 支持说明
- 每个 Subclipse 插件版本都与特定的 Subversion 版本兼容。确保您的 Subclipse 插件与 Parasoft 支持的 Subversion 版本兼容。例如,您不应安装使用 Subversion 1.4 的 Subversion 1.3 和 Subclipse 插件 1.2。Subclipse 1.4.x 需要 JavaHL/SVNKit 的 Subversion 1.5.0 版本。Subclipse 1.4.5 已经有 subversion 客户端适配器 1.5.2。
- 由于 Subversion 1.4 中引入的变更,低于 1.4 的 Subversion 客户端无法使用 Subversion 1.4 生成的工作副本。如果您使用的是 Subclipse 插件 1.2(包括 Subversion 1.4),您可能会收到以下错误消息:
svn:
此客户端版本太旧,无法使用工作副本“.”;请获取更新的 Subversion 客户端
这意味着 Parasoft 使用的是 1.3 或更低版本的命令行客户端。解决方案是将您的命令行 SVN 客户端更新到 1.4 版。可以通过执行svn --version
来验证客户端版本
启用源码控制
要启用对任何受支持的源码控制系统的支持则:
确保给定源码控制的命令行客户端位于系统%PATH%/$PATH 上,并且在启动 C/C++test 时可用。 例如,如果您使用 Subversion,仅仅将 Subclipse 插件安装到 Eclipse(SVN Eclipse 插件)是不够的(甚至是必需的)。 相反,您应该拥有简单的命令行 svn.exe Subversion 客户端。
- 选择 Parasoft> 首选项 以打开【首选项】页面。
- 在【首选项】页面左侧窗格中选择 Parasoft> 范围和作者身份。
- 启用使用源码控制(修改作者)来计算范围选项。
- 在【首选项】页面的左窗格中选择 Parasoft> 源码控制。
- 如果已经设置了适当的存储库 ARE(参考C/C++test 配置概述中说明的自动配置过程),输入您的用户名和密码,并指定源管理客户端可执行文件的路径(如果它还不在您的系统路径上)
。如果尚未设置适当的存储库 ARE (请参阅C/C++test 配置概述 中描述的自动配置过程),请按如下方式指定它们:- 启用您要使用的源码控制系统
- 指定 SCM 客户端可执行文件的路径。如果它已经在您的系统路径上,您不需要指定可执行路径。
- 在存储库属性字段中单击新建,然后输入所选类型的源码控制系统所需的源码控制属性。
- 单击 确定 关闭【源码控制描述】对话框。
- 应用您的变更并单击确定。
测试集成:
- 在 C/C++test 环境中,打开从存储库中检出的项目。
- 在编辑器中打开一个文件。
- 右键单击源代码,然后选择 Parasoft>在行处显示作者。如果显示的是正确的作者,则集成成功。
调试提示
要解决源码控制集成问题,请运行 -consolelog -J-Dcom.parasoft.xtest.logging.config.jar.file=/com/parasoft/xtest/logging/log4j/config/logging.on.xml.
控制台应该会打印详细的日志信息。
若要包含来自源管理系统的可能包含用户源代码片段的消息,请使用附加标志:-Dscontrol.log=true
Git 配置
您连接到的 Git 存储库必须允许匿名拉取。
- 打开命令提示符并克隆您的存储库:
git clone <repository>
- 如果从 git URL 克隆,则
git push
URL 还必须配置为自动推送 Git.git config remote.origin.pushurl git@<your repository URL>
检入的测试用例 - 在新创建的存储库
user.name
上设置git config
。git config user.name "<your username>"
如果已经设置了全局的git user.name ,可以跳过这一步。user.name必须与用户的 DTP 用户名匹配。
启用源码控制支持时,请在“创建源码控制描述”对话框中指定以下存储库属性:
- URL: 指定要拉取/推送的远程存储库 URL。如果禁用拉拉取和推送,则此字段可以留空。您可以使用所有 git url (例如,git://host/repositoryssh://user@host user@host)。请注意,由于 Git 命令行不支持使用标志设置凭证,通常需要身份验证(例如 ssh)的协议必须将身份文件设置为启用无凭证登录,或者它们必须接受匿名连接。
- 分支:输入源码控制模块将使用的本地工作空间中的分支名称。如果将其留空,则将使用当前检出的分支。
- 工作文件夹:输入本地 git 存储库的根目录。
浅克隆
如果你打算从 Git 向 DTP 报告作者信息,克隆的存储库不应该是浅层。如果文件.git/shallow
存在,则 Git 存储库被认为是浅层。从存储库中检出浅层克隆时,Git 可能无法准确生成作者数据。您应该查看完整的克隆以检索准确的作者信息。
Perforce 配置
启用源码控制支持时,请在“创建源码控制描述”对话框中指定以下存储库属性:
- 服务器:输入 Perforce 服务器的机器名称或 IP 地址。
- 端口:输入 Perforce 服务器的端口。
- 用户: 输入您想要连接到存储库的用户名。
- 密码:输入上述用户名的密码。
- 客户端:输入在 P4CLIENT 环境变量或其等效项中指定的客户端工作空间名称。
Subversion 配置
Parasoft 的 Subversion 支持基于命令行客户端'svn'。要将 Subversion 与 C/C++test 一起使用,请确保:
- 安装了受支持的 Subversion 客户端版本。
- 客户端证书存储在 Subversion 配置区域中。Subversion 客户端有一个内建系统,用于在磁盘上缓存身份验证凭证。默认情况下,每当命令行客户端成功向服务器验证自己的身份时,它都会将凭证保存在用户的私有运行时配置区域中—在像 Unix 系统上的~/.subversion/auth/ 或在 Windows 上的 %APPDATA%/Subversion/auth/。
启用源码控制支持时,请在“创建源码控制描述”对话框中指定以下存储库属性:
- URL: 输入 SVN 服务器的 URL。URL 应指定协议、服务器名称、端口和起始存储库路径(例如,svn://buildmachine.foobar.com/home/svn)。
- 用户: 输入您想要连接到存储库的用户名。
- 密码:输入上述用户名的密码(未编码)。
Team Foundation Server 配置
启用源码控制支持时,请在“创建源码控制描述”对话框中指定以下存储库属性:
- URL: 输入 Team Foundation Server 存储库的 URL(例如, http://localhost:8080/tfs)。
- 使用自定义凭据:如果要提供自定义 TFS 凭证,请选择此选项,然后提供这些凭证。禁用此选项后,将使用系统凭证。
- 用户: 输入用户名。确保提供与在计算机上配置 TFS 存储库所使用的用户名相同的用户名。
- 密码:输入密码。
默认情况下,C/C++test 使用缓存的凭证来访问 TFS(这可能是您的用户登录信息或一些以前登录的信息)。如果您想使用自定义凭证而不是缓存的凭据,则可以提供自定义凭证。
通过 localsettings 指定源码控制定义
可以在 localsettings 中指定源码控制定义(例如,通过 DTP 共享团队范围的设置或在命令行中指定选项)。有关详细信息,请参见配置本地设置。