gpt4 book ai didi

ios - 如何在 xcode 4.5 上从命令行运行 IOS 单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:11:27 27 4
gpt4 key购买 nike

我一直在尝试找出如何从命令行运行我们的单元测试,以便我们可以将它们自动化。我正在使用 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

你可以看到

  1. 启动命令后应用路径不正确
  2. XCInjectBundle 应该是您的 octest 而不是应用
  3. XCInjectBundleInto 应该是您的应用程序二进制路径而不是应用程序文件夹
  4. 最后一个参数也应该是你的octest

如果你在你的环境变量中看不到 TEST_HOST,你可能想通过它们来找到一些合适的变量来使你的 bash 脚本正确。

关于ios - 如何在 xcode 4.5 上从命令行运行 IOS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com