首页 > 解决方案 > SoapUI 测试执行返回错误“目录名称无效”

问题描述

我有一个已建立的 CI 管道,包括(在部署之前):

我无权访问我们的构建代理服务器,也无权在其上安装任何东西。相反,我添加了 SoapUI 二进制文件作为我的功能测试项目的链接;二进制文件是在每次构建的 Get Sources 步骤中从源代码管理中提取的。

这工作正常,但它大大增加了我的测试项目(以及需要 SoapUI 的任何其他测试项目)的占用空间,并且通过扩展,构建的执行时间:功能测试只会在一小部分构建上执行执行(仅当应用程序代码库已更改或自上次完整构建和测试以来已经过足够的时间间隔时)。

由于这些原因,我选择从我的测试项目中删除 SoapUI 二进制文件夹,而是将 SoapUI 二进制 zip 存档部署到 Artifactory 存储库。通过在构建定义中添加 PowerShell 脚本步骤,我可以根据需要提取 SoapUI 二进制文件并提取到构建服务器上的所需位置。愚蠢地,我认为这可能很简单......

我确实设法将压缩的 SoapUI 二进制文件夹推送到 Artifactory 存储库,并且在我的 Development 构建定义中,我确实设法正确编写了我的 PowerShell 步骤以提取 zip 存档并将其内容成功提取到构建二进制文件中的同一文件夹构建代理服务器上的目录,因为它最初位于。

但是,当我执行构建时,在执行 SoapUI 测试的步骤中,在第一次测试迭代中,我看到以下错误返回到构建控制台:

System.ComponentModel.Win32Exception:目录名称无效

我在我的开发(新)和我的生产(原始)构建中的测试执行步骤之前添加了一个 PowerShell 脚本过滤文件夹内容步骤,以进行比较。两者都显示了所需的“testrunner.bat”,位于构建代理服务器上的同一文件夹中。测试项目本身没有改变(除了删除 SoapUI 二进制文件夹)。

总结一下:我正在尝试在两个版本中执行 SoapUI 测试;在每个构建中,都使用相同的测试项目,并且当测试执行开始时,SoapUI 二进制文件位于相同的位置。一个构建成功执行,没有问题。一个构建在测试执行步骤失败,返回错误“System.ComponentModel.Win32Exception:目录名称无效”。

我对此感到非常困惑;见解和 SoapUI 智慧最受欢迎。感谢您的关注。

标签: tfssoapuiartifactory

解决方案


事实证明,构建之间的 testrunner.bat 上的目录路径存在差异;一个 '_' 应该是一个 '-'


推荐阅读