TPTP 本身只考虑 CLASSPATH 和 ROOTDIR 属性。
在执行时要部署的文件是:
1. 测试项目类路径中除下列文件类型以外的所有文件:.java、.execution、.testsuite、.deploy、.location 和 .artifact。
2. 与用于测试执行的工件相关的任何测试资产。
3. 用于测试执行的工件的常规属性的 CLASSPATH 属性。
以下过程用来计算 ROOTDIR:
步骤 1 |
如果指定了 ROOTDIR 位置属性,则 TPTP 首先在远程机器上查找此属性;如果此属性存在,则使用它的值作为此步骤的输出。
如果未指定 ROOTDIR 位置属性,或者指定了此属性但远程机器上不存在此属性,则 TPTP 将使用远程机器环境中的临时目录推断此属性;它按顺序查找 LOCAL_AGENT_TEMP_DIR、TEMP 和 TMP 并将首先找到的内容用作此步骤的输出。 |
步骤 2 |
TPTP 在本地机器上查找 USR_NAME 位置属性。如果此属性不存在,则 TPTP 从 Java 中获取 user.name 属性(System.getProperty("user.name"))。 |
步骤 3 |
TPTP 将步骤 1 和步骤 2 的输出合并,并将合并结果用作 ROOTDIR。 |
要设置将部署在 ROOTDIR 中且根目录为 ROOTDIR 的 JAR,请设置工件的 CLASSPATH 参数;要设置不需要部署但仍需要包括在类路径中的 JAR(例如,它们已在部署目标位置/机器上),请设置位置的 CLASSPATH 参数。因此,工件 CLASSPATH 与位置 CLASSPATH 之间的区别在于,您是想部署并引用 JAR 还是仅仅想在部署位置引用 JAR。
即使某些库列示在工件的类路径属性中,也不会被部署。它们是:
TPTP 3.3 以前的工作台客户机无法使用 TPTP 3.3 和更高版本的代理控制器(它们必须继续使用 TPTP 3.3 以前的旧代理控制器)。TPTP 3.3 和更高版本的客户机既可以使用旧代理控制器也可以使用新代理控制器。总而言之,目前 TPTP 中的客户机/服务器支持情况如下所示:
客户机版本 >= TPTP 3.3,服务器版本 >= TPTP 3.3(对于未受保护的代理控制器,使用新的文件传输协议;对于受保护代理控制器,使用旧文件传输协议)
客户机版本 >= TPTP 3.3,服务器版本 < TPTP 3.3(对于未受保护和受保护的代理控制器,都使用旧文件传输协议)
客户机版本 < TPTP 3.3,服务器版本 >= TPTP 3.3(由于旧客户机无法理解新的服务器文件传输协议,所以此组合无效)
客户机版本 < TPTP 3.3,服务器版本 < TPTP 3.3(对于未受保护和受保护的代理控制器,都使用旧文件传输协议)
为了提高部署速度,TPTP 3.3 和 TPTP 4.0 对文件传输服务进行了更改。此更改导致使用新的文件传输服务协议,TPTP 3.3 以前的任何客户机都无法理解这个新协议,因此测试部署将失败。新版本客户机既理解新协议也理解旧协议,因此部署将会成功。
确保属性中设置的任何文件路径都正确地反映了目标机器的操作系统命名约定。例如,如果正在从 Windows 客户机部署到 Linux 机器,并且指定了 ROOTDIR,请检查此值对于 Linux 来说是否是合法路径。
所有路径都必须是绝对路径。例如,在 Windows 上,“C:\myRootDir”是正确的,在 Linux 上,“/home/user/myRootDir”是正确的 - 所有路径都必须是绝对路径,不能是相对路径。