本主题解释如何将 SOAtest 连接到源代码控制资源库中。

本章包含:

关于源代码控制支持

插入到 Parasoft SOAtest 环境中的任何源代码控制系统都可以用来管理源代码文件。

如果团队正在使用一个指定的受支持的源代码系统(请参阅下面的列表)并执行必要配置(如本主题后面所述),则 Parasoft 可以:

  • 使用源代码控制中的文件修订数据来决定作者(用于自动将测试失败和策略违反分配给负责的团队成员,以及根据作者和/或修改时间限制测试范围)。有关详细信息,请查阅配置任务分配和代码作者设置
  • 测试前更新源代码中的项目(如果启用了测试配置的 Common> Source Control> Update projects 设置)。

SOAtest 包括对以下源代码控制系统开箱即用的支持:

系统所测试版本
Git

1.7, 1.8, 1.9, 2.x

Microsoft Team Foundation Server2012, 2015, 2017, 2018, 2019
Perforce2006.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 与其他源代码控制系统集成。请查阅 添加自定义源代码控制集成

不推荐使用的源代码控制系统

自 SOAtest 2020.1 版本起,不再支持以下 SCM:

  • AccuRev
  • ClearCase
  • CVS
  • Serena Dimensions
  • StarTeam
  • Synergy
  • Visual SourceSafe

关于配置信息,请查阅 Configuring Deprecated Source Control Systems 。

Subclipse 支持

每个 Subclipse 插件版本都与特定 Subversion 版本兼容。确保 Subclipse 插件与 Parasoft 支持的 Subversion 版本兼容。

例如,不要安装 Subversion 1.3 和使用 Subversion 1.4 的 Subclipse 插件 1.2。Subclipse 1.4.x 要求 JavaHL/SVNKit 的 Subversion 1.5.0 版本。Subclipse 1.4.5 已经拥有 subversion 客户端适配器 1.5.2。

低于 1.4 的 Subverison 客户端不支持 Subversion 1.4 生成的工作副本。如果使用 Subclipse 插件 1.2 (其中包括 Subversion 1.4),则可能会收到以下错误消息:

svn: This client is too old to work with working copy '.'; please get a newer Subversion client

This means that Parasoft is using a command-line client that is version 1.3 or older.解决方法是将命令行 SVN 客户端更新为 1.4 版本.执行以下命名可查看客户端版本。

svn --version

为什么在尝试修改文件时会打开对话框?

某些源代码控制(包括 ClearCase、Perforce、Synergy 和 Visual SourceSafe)要求用户进行编辑前对源代码进行标记(锁定)。如果正在使用这些源代码控制系统之一,并且提示 SOAtest 执行一项其中包括在源代码控制中编辑一个“只读”文件的操作,则将首先打开一个对话框,询问您是否想让文件可写并锁定它。单击 OK,然后在打开的下一个对话框中提供源代码控制用户名和密码;这允许您访问源代码控制系统并设置锁定。

启用源代码控制支持

若要启用对任何受支持的源码控制系统的支持:

  1. 确保用于给定源代码控制的命令行客户端位于 system%PATH%/$PATH 上,并且在启动 SOAtest 时可用。

    • 例如,如果您有 Subversion,则将 Subclipse 插件安装到 Eclipse(SVN Eclipse 插件)是不够的(甚至是必要的)。相反地,应该使用普通命令行 svn.exe Subversion 客户端。

  2. 选择 Parasoft> Preferences。将打开 Preferences 话框。
  3. 在 Preferences 话框中,选择 Parasoft> Scope and Authorship 。
  4. 选中 Use source control (modification author) to compute scope
  5. 在 Preferences 话框中,选择 Parasoft> Source Controls 。
  6. 如果已经正确设置了适当的资源库(请查阅 跨团队配置 SOAtest中所述的自动配置过程),输入用户名和密码,然后指定源代码控制系统可执行文件的路径(如果在系统路径上不存在)。

    如果还未设置适当的资源库, (请查阅 跨团队配置 SOAtest中所述的自动配置过程) ,请按照以下说明进行指定: 
    1. 启用要使用的源代码管理系统,并指定 SCM 客户端可执行文件的路径。如果系统路径中已经存在可执行路径,则无需再次指定。
    2. 单击 Repository 属性字段中的 New ,然后按照所选类型的源代码控制系统要求输入源代码控制属性。  
    3. 单击 OK 以关闭 Source Control Description 对话框。
  7. 应用更改,然后单击 OK

若要测试集成:

  1. 在 Parasoft 环境中,打开从存储库检出的项目。
  2. 在编辑器中打开一个文件。
  3. 右键单击源代码,然后选择 Parasoft> Show Author at Line。如果显示了正确的作者,则说明集成成功。

调试技巧

若要使用源代码控制继承来排除故障问题,则运行 -consolelog -J-Dcom.parasoft.xtest.logging.config.jar.file=/com/parasoft/xtest/logging/log4j/config/logging.on.xml。这将导致将详细的日志信息打印到控制台。

若要包含来自源代码控制系统的可能包含用户源代码片段的消息,请使用附加标志:-Dscontrol.log=true

Git 配置

连接的 Git 资源库必须允许匿名 pull。

  1. 打开命令行提示符,然后克隆资源库:

    git clone <repository> 

  2. 如果通过 git URL 克隆,那么 git push  URL 还必须配置为自动 push 使用 Git 检入的测试用例。

    git config remote.origin.pushurl git@<your repository URL> 

  3. 在新建的资源库 user.name上设置 git config  。

    git config user.name "<your username>" 

    如果已经设置了全局 git user.name,可以跳过此步骤。用户名必须匹配用户的 DTP 用户名。

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • URL: 指定要 pull/push 到的远程资源库 URL。如果禁用了 pull 和 push ,则可以将此字段留空。可以使用所有 git urls(比如,git://host/repositoryssh://user@host user@host)。注意,由于 Git 命令行不支持使用标志设置凭证,通常情况下要求身份验证(如 ssh)的协议必须设置身份文件以启用无凭据登录,否则必须接受匿名连接。
  • Branch: 在本地工作空间输入源代码控制模型将使用的分支名称。如果留空,则将使用当前检出的分支。
  • Working folder: 输入本地 git 资源库的根。

Shallow Clones

如果文件 .git/shallow 存在,则认为 Git 存储库为浅存储库。浅式克隆一个资源库时,Git 可能无法准确生成作者数据。应该检出完整克隆,以检索精确地作者信息。  

Perforce 配置

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • Server: 输入 Perforce 服务器的机器名称或 IP 地址。
  • Port: 输入 Perforce 服务器的端口。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码。
  • Client: 输入客户端工作区名称,如 P4CLIENT 环境变量或其等效项中指定。

使用工作空间来决定作者

默认情况下,用户名可用于决定文件/方法作者。然而,有些团队使用共享的用户名和每个开发人员唯一的工作区访问 Perforce。

如果希望使用工作区名称(或用户名和工作空间名称)来决定作者,则打开 Authorship 选项卡,并根据需求修改设置。

Subversion 配置

Parasoft 的 Subversion 支持基于命令行客户端‘svn’的。请查阅 About Source Control Support ,以获得所支持 SVN 版本的列表。

客户端证书必须存储在 Subversion 配置区域。Subversion 客户端有一个内置系统,用于在磁盘上缓存身份验证凭据。默认情况下,无论何时命令行客户端成功地向服务器进行身份验证,它都会将凭据保存在用户的私有运行时配置区域—在像 Unix 系统地 ~/.subversion/auth/ 或 Windows 上的 %APPDATA%/Subversion/auth/。

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • URL: 输入 SVN 服务器的 URL。URL 指定协议、服务器名称、端口号和启动存储库路径(如:svn://buildmachine.foobar.com/home/svn)。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码(未编码)。

团队基础服务器配置

 请查阅 About Source Control Support ,以获得所支持版本的列表 

集成 Eclipse 的 SOAtest 不要求为 TFS 集成安装任何附加软件(包括所需库)。

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • URL: 输入团队基础服务器资源库的 URL(例如, http://localhost:8080/tfs)。
  • Use custom credentials: 如果希望提供自定义 TFS 凭证,请选择此选项,然后提供这些凭证。禁用此选项时,将使用系统凭证。
  • User: 输入用户名。
  • Password: 输入密码。

默认情况下,SOAtest 使用缓存凭证(这可以是您的用户登录或之前登录的一些信息)访问 TFS。如果希望使用自定义凭证而不是缓存凭证,可以提供自定义凭证。

配置不推荐使用的源代码控制系统

不支持以下 SCM,它将在将来的版本中终止。

AccuRev 配置

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • Server: 输入运行 AccuRev 的服务器的主机名(必需)。
  • Port: 输入运行 AccuRev 的服务器的主机端口(必需)。
  • Username: 输入 AccuRev 用户名/登录(必需)。
  • Password: 输入 AccuRev 密码(如果需要)。

ClearCase 配置

若将 ClearCase 与 SOAtest 一起使用:

  • 请检查 ClearCase 是否可以通过调用 cleartool describe -fmt %Vn <file_path> 命令控制源码文件。没有输出意味着该文件不受 ClearCase 控制。
  • 确保 VOB 根目录包含 lost+found 目录。

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • VOB location: 输入动态或快照 VOB 访问路径。使用完整的 VOB 路径(比如,/vobs/myvob (Linux 动态视图)或 M:\\my_dynamic_view\myvob (Windows VOB 路径)。注意,当输入 Vob 位置时,Vog 标签字段将自动显示 vob 标签。如果位置不是正确地 vob 路径,则将显示一条警告消息。

CVS 配置

若将 CVS 与 SOAtest 一起使用,请确保 .cvspass 文件位于以下路径之一:

  • user.home 系统属性
  • HOME env 变量
  • (Windows)HOMEDRIVE 和 HOMEPATH 的组合(例如:"C:"+ "\home")
  • 当前工作目录

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

常规选项

  • Connection type: 输入 CVS 服务器的身份验证协议。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码。
  • Repository path: 在服务器上输入资源库的路径。
  • Server:输入 CVS 服务器的机器名称或 IP 地址。
  • Port: 输入 CTP 服务器的端口。

自定义 SSH/CVS_RSH 选项卡

  • CVS_SERVER value: 如果连接到 EXT 模式下的 CVS 服务器,则指定在服务器端启动哪一个 CVS 应用程序。
  • Use custom authentication properties for ext/server method:如果希望使用 ext/sever 方法的自定义身份验证,请启用此选项。
  • Remote shell login: 输入 SSH 登录。
  • Remote shell password: 输入上述 SSH 登录的密码。
  • Private key file: 输入私钥文件。
  • Passphrase for private key file: 输入上述私钥文件的密码。
  • Use command-line program to establish connection: 允许运行外部项目建立 EXT 连接。仅对非标准和遗留协议连接(telnet,rsh)使用此选项。目前不支持 Linux/Unix/Cygwin ssh prompts for passwords/passphrases/ 安全字序列。
  • CVS_RSH path: 指定用于建立 EXT 连接的可执行文件的完整路径。
  • CVS_RSH parameters: 指定可执行文件的参数。以下宏定义(区分大小写)可用于将值展开为命令行参数:
    • {host} - 主机参数
    • {port} - 端口参数
    • {user} - 来自主页的用户参数
    • {password} - 来自主页的用户密码
    • {user} - 来自 EXT/CVS_RSH 页的用户参数
    • {password} - 来自 EXT/CVS_RSH 页的密码参数
    • {keyfile} - key 文件路径
    • {passphrase} - key 文件密码

Serena Dimensions 配置

Linux 和 Solaris 的配置说明

要想将 Serena Dimensions 和 SOAtest 一起使用,那么 Linux 和 Solaris 用户应该在为使用 Serena 程序准备的环境中运行 SOAtest,比如 'dmcli’

  • LD_LIBRARY_PATH 应该包含到 <SERENA Install Dir>/libs 的路径。
  • 应指定 DM_HOME 。

由于许多 Solaris 用户通常通过运行 Serena dmgvar.sh 文件来设置所需的 Serena 变量,所以它也需要修改 LD_LIBRARY_PATH 变量。要想将 Serena Dimensions 和 SOAtest 一起使用,那么 LD_LIBRARY_PATH 需要包含以下项目(客户端上的路径可以不同):

  • SSL/Crypto library - /usr/local/ssl/lib
  • STDC++ library -  /usr/local/lib

在启用源代码控制支持时,请在以下选项卡中指定资源库属性:

属性选项卡

  • User: 输入 Serena Dimensions 登录名。
  • Password: 输入 Serena Dimensions 登录密码。
  • Server: 输入 Serena Dimensions 服务器主机名。
  • Database name: 输入正在使用的产品的数据库名称。
  • Database connection: 输入该数据库的连接字符串。
  • Server locale: 选择语言。

Workset Map 选项卡

如果项目已下载/移动到默认工作区以外的位置,则使用此选项卡来指定使用 Serena 存储库的项目(或流)和本地项目之间的映射。

如果在默认工作区中工作,则不需要定义映射。 

输入将工作区资源映射到 Serena Dimension 资源库路径的表达式。

  • 示例 1:如果使用 scontrol.rep.serena.mapping_1=${project_loc\:MyProject};PRODUCT1\: WORKSET1;src\\MyProject,则项目 'MyProject’ 将映射到 Serena workset PRODUCT1:WORKSET1 和工作集相对路径:src\\MyProject
  • 示例 2:如果使用 scontrol.rep.serena.mapping_2=${workspace_loc};PRODUCT1\:WORKSET1,则完整工作区将映射到 Serena workset PRODUCT1:WORKSET1。

StarTeam 配置

必须安装 Borland StarTeam SDK。这可以从 Borland 网站免费下载。

对于 Visual Studio 插件,Parasoft StarTeam 支持适用于 VS 2005 和 VS 2008。在启用源代码控制支持时,请指定以下资源库属性:

  • Server:输入 StarTeam 服务器的机器名称或 IP 地址。
  • Port: 输入 StarTeam 服务器的端口。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码。
  • Paths lookup> StarTeam Path: 当使用大型多项目存储库时,您可以通过制定项目、视图或当前使用的文件夹来提高性能。可以表明一个简单的项目名称(搜索存储库路径时,将扫描所有视图),或一个项目/视图(将只扫描给定的视图),或项目/视图/文件夹(将只扫描指定的 StarTeam 文件夹)。
  • Paths lookup> Working Folder: 如果 StarTeam Path 设置指定一个 StarTeam视图或文件夹,那么您就可以使用这个字段来指示用于所选视图根文件夹的新工作目录(如果路径代表一个视图)或用于所选文件夹的新工作目录(如果路径代表一个文件夹)。

Synergy 配置

支持以下 Synergy/CM 通讯方式:

  • Web 模式(自 Synergy 7.0 起)
  • 传统模式

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • Database path: 输入 Synergy 数据库的绝对路径。
  • Engine host: 输入 Synergy 服务器的机器名称或 IP 地址。对于 Web 模式,主机必须是具有协议和端口的有效 Synergy Web URL(如: http://synergy.server:8400)。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码。
  • Paths lookup> StarTeam Path:如果希望将 CCM 作为远程客户端会话启用,则启用该选项。不适用于 Web 模式。
  • Paths lookup> Working Folder:输入在运行远程客户端会话时复制数据库信息的位置的路径名。不适用于 Web 模式。

Visual SourceSafe 配置

在启用源代码控制支持时,请在 Create Source Control Description 对话框中指定以下资源库属性:

  • VSS Database Path: 输入数据库路径(SRCSAFE.INI 的位置)。
  • User: 输入要连接到资源库的用户名。
  • Password: 输入上述用户名的密码。
  • Project root in repository: 输入项目根。它以 $/开头,例如, $/nightly_test

通过 localsettings 指定源码控制定义

源码控制定义可在 localsettings 中指定(比如,对于通过 DTP、Concerto 共享团队范围的设置,或在命令行指定选项)。有关更多详情,请查阅 Configuring Localsettings 。 

  • No labels