- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在尝试找出如何从命令行运行我们的单元测试,以便我们可以将它们自动化。我正在使用 XCode 4.5.2 并构建一个 IOS 应用程序。
首先我尝试使用这个:
xcodebuild -target "Unit Tests" -configuration "Debug (test syncserver)" -sdk iphonesimulator6.0 clean build TEST_AFTER_BUILD=YES
那将运行编译,但测试没有运行。因此,在阅读了这里的其他解决方案之后,我安装了 ios-sim 并设置了我的目标以在之后运行此脚本:(请注意,我必须用“CODESIGNING_FOLDER_PATH”替换出现的“TEST_HOST”,因为我的构建中似乎不存在 TEST_HOST。)
#!/bin/bash
if [ "$RUN_UNIT_TEST_WITH_IOS_SIM" = "YES" ]; then
test_bundle_path="$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.$WRAPPER_EXTENSION"
echo ios-sim launch "$(dirname "$CODESIGNING_FOLDER_PATH")" --setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle="$test_bundle_path" --setenv XCInjectBundleInto="$CODESIGNING_FOLDER_PATH" --args -SenTest All "$test_bundle_path"
ios-sim launch "$(dirname "$CODESIGNING_FOLDER_PATH")" --setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle="$test_bundle_path" --setenv XCInjectBundleInto="$CODESIGNING_FOLDER_PATH" --args -SenTest All "$test_bundle_path"
echo "Finished running tests with ios-sim"
else
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
fi
现在,当我运行与以前相同的 xcodebuild 命令时,我得到了这个:
/bin/sh -c "\"/Users/johnlussmyer/tu/ondeck/OnDeck/build/OnDeck.build/Debug (test syncserver)-iphonesimulator/Unit Tests.build/Script-4CECE52812D5043F0063EC6A.sh\"" ios-sim launch /Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug (test syncserver)-iphonesimulator --setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle=/Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug (test syncserver)-iphonesimulator/UnitTests.app --setenv XCInjectBundleInto=/Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug (test syncserver)-iphonesimulator/UnitTests.app --args -SenTest All /Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug (test syncserver)-iphonesimulator/UnitTests.app [DEBUG] Session could not be started: Error Domain=DTiPhoneSimulatorErrorDomain Code=1 "Unknown error." UserInfo=0x7fcf04b03190 {NSLocalizedDescription=Unknown error., DTiPhoneSimulatorUnderlyingErrorCodeKey=-1} Finished running tests with ios-sim
对下一步尝试有什么建议吗?
最佳答案
从日志来看,您似乎有几个错误的设置。正确的语法是:
ios-sim launch YourApp.app
--setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection
--setenv XCInjectBundle=YourTest.octest
--setenv XCInjectBundleInto=YourApp.app/YourApp
--args -SenTest All YourTest.octest
你可以看到
如果你在你的环境变量中看不到 TEST_HOST,你可能想通过它们来找到一些合适的变量来使你的 bash 脚本正确。
关于ios - 如何在 xcode 4.5 上从命令行运行 IOS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967777/
我是一名优秀的程序员,十分优秀!