Fastlane iOS 测试在本地通过,但不是来自 Jenkins
Posted
技术标签:
【中文标题】Fastlane iOS 测试在本地通过,但不是来自 Jenkins【英文标题】:Fastlane iOS tests pass locally but not from Jenkins 【发布时间】:2019-02-27 08:13:30 【问题描述】:我在 Jenkins 上执行 Fastlane 时遇到了一些问题。 在本地它可以工作,构建成功并运行测试。 但是来自 Jenkins 和 github,构建没有成功。 我想是因为这条线:
PhaseScriptExecution Run\ Script /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/MyProject-bljizzbrhfznjpgjucmtarcsjmyw/Build/Intermediates.noindex/MyProject.build/Debug-iphonesimulator/Core.build/Script-FC957A9020120D68000F4790.sh
但不要专注于此,我不确定就是这样。
这里是快速文件:
default_platform(:ios)
platform :ios do
desc "Launch Middleware tests"
lane :tests do
run_tests(workspace: "MyProject.xcworkspace",
clean: true,
devices: ["iPhone 8"],
scheme: "Middleware",
slack_url: "https://hooks.slack.com/services/...",
slack_channel: "#myChannel")
end
end
一些环境变量设置
构建动作:
詹金斯错误
由fastfile创建并由Jenkins执行的命令
【问题讨论】:
【参考方案1】:我找到了答案,似乎是那个脚本:Script-FC957A9020120D68000F4790.sh,我在 Swift 4 之前使用的是 sourcery。
$PODS_ROOT/Sourcery/bin/sourcery --sources $PROJECT_DIR/Core --templates $PROJECT_DIR/Sourcery/Core/Templates --output $PROJECT_DIR/Core/Sourcery/
Jenkins 无法找到 PODS_ROOT 和 PROJECT_DIR 环境变量。我不再使用 sourcery 所以,我评论了那个脚本,但如果你仍然使用它,我认为你可以将环境变量添加到 jenkins 配置中
【讨论】:
感谢提及脚本名称,它产生了比较我得到的错误并检查文件的想法。以上是关于Fastlane iOS 测试在本地通过,但不是来自 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章
使用 fastlane 匹配方法在本地 iOS 设备上运行 react-native 应用程序
iOS Swift UI Tests (XCUITests) 稳定性问题 - fastlane scan