tfs - SoapUI 测试执行返回错误“目录名称无效”
问题描述
我有一个已建立的 CI 管道,包括(在部署之前):
- TFS 构建
- JFrog Artifactory 用于构建工件管理
- 用于 Web 服务功能测试自动化的 SoapUI 和 SpecFlow(BDD 和迭代,参数化)
我无权访问我们的构建代理服务器,也无权在其上安装任何东西。相反,我添加了 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 智慧最受欢迎。感谢您的关注。
解决方案
事实证明,构建之间的 testrunner.bat 上的目录路径存在差异;一个 '_' 应该是一个 '-'
推荐阅读
- c - 如何将二进制数转换为有符号十进制数
- python - 通过加载和保存权重继续训练 Keras 模型
- ios - 如何在 iOS 的 TableView 中使用 AdMob 横幅广告?
- python-3.x - Pandas:如何仅遍历两个 ID 列的回溯日期以提供唯一 ID 和计数?
- javascript - 有没有办法在点击时按顺序弹出链接?
- matlab - 从第二行读取 csv 并创建输出
- android - java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2 - 为什么?
- c# - 编码、解码和重新编码不产生原始结果
- r - 返回 top_n 后的原始数据集
- google-app-engine - 如何从谷歌应用引擎标准下载源代码(appcfg.py 已弃用)