I want to run Kiwi tests for my app, but I'm pretty new to Jenkins so probably I'm missing out something.
I installed iOS-sim on the mac that runs Jekins. I run $ ios-sim --version
just to make sure it was installed.
In my project in the Build Phases of my test target I added this script:
#!/bin/sh
# Launch application using ios-sim and set up environment to inject test bundle into application
# Source: http://stackoverflow.com/a/12682617/504494
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
Both my app and test schemes are shared.
Every time I run the Jenkins jobwith this following shell script:
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
I get a succesfull job even though my test should have failed, and when i checked the log, just before it's end I have
/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
so basically it doesn't even launch the app
These days it's possible to run application tests from the command line using plain xcodebuild
without any extra work. Let's say you had a fresh project to which you'd added Kiwi, you can just run:
xcodebuild test
Or if you're using a workspace:
xcodebuild test -workspace MyWorkspace.xcworkspace -scheme MyProj