运行 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 运行 脚本所在的路径。
我想 运行 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 运行 脚本所在的路径。