运行 Kiwi 使用 ios-sim 在 Jenkins 上进行测试

run Kiwi tests on Jenkins with ios-sim

我想 运行 Kiwi 测试我的应用程序,但我对 Jenkins 很陌生,所以我可能遗漏了一些东西。

我在 运行s Jekins 的 mac 上安装了 iOS-sim。我 运行 $ ios-sim --version 只是为了确保它已安装。

在我的测试目标构建阶段的项目中,我添加了这个脚本:

#!/bin/sh
# Launch application using ios-sim and set up environment to inject test bundle into application
# Source: 

if [ "$RUN_APPLICATION_TESTS_WITH_IOS_SIM" = "YES" ]; then
    test_bundle_path="$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.$WRAPPER_EXTENSION"
    environment_args="--setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle=$test_bundle_path --setenv XCInjectBundleInto=$TEST_HOST"
    ios-sim launch $(dirname $TEST_HOST) $environment_args --args -SenTest All $test_bundle_path
    echo "Finished running tests with ios-sim"
else
    "${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
fi

我的应用程序和测试方案都是共享的。

每次我 运行 Jenkins jobwith 以下 shell 脚本:

xcodebuild -sdk iPhoneSimulator -workspace path/to/my/app/AdminPanel.xcworkspace -scheme AdminPanelTests -configuration Debug RUN_APPLICATION_TESTS_WITH_IOS_SIM=YES ONLY_ACTIVE_ARCH=NO clean build

我得到了一份成功的工作,即使我的测试应该失败了,当我检查日志时,就在它结束之前我有

/Users/jenkins/Library/Developer/Xcode/DerivedData/AdminPanel-gbjokymklhdmkhfglybgrvrgrcnm/Build/Intermediates/AdminPanel.build/Debug-iphonesimulator/AdminPanelTests.build/Script-73BDE2F11B7B798D009339E9.sh: line 11: ios-sim: command not found

所以基本上它甚至不会启动应用程序

如今,可以使用简单的 xcodebuild 从命令行 运行 应用程序测试,无需任何额外工作。假设您有一个添加了 Kiwi 的新项目,您可以 运行:

xcodebuild test

或者,如果您使用的是工作区:

xcodebuild test -workspace MyWorkspace.xcworkspace -scheme MyProj

问题出在路径上,我必须在 运行 构建阶段脚本之前将 /usr/local/bin/ 添加到 PATH 变量。

export PATH=$PATH:/usr/local/bin/

如果您 运行 进入此,请始终检查 Xcode 运行 脚本所在的路径。