首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用终端模拟器进行OCUnit应用测试

利用终端模拟器进行OCUnit应用测试
EN

Stack Overflow用户
提问于 2011-07-06 20:58:14
回答 4查看 5.3K关注 0票数 11

是否可以使用终端命令启动在模拟器中运行的应用程序测试?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-12 15:45:02

是的,我让它起作用了。不知何故,我的解决方案很粗糙,可能并不适用于所有情况。

免责声明:此解决方案需要编辑系统文件。它对我来说很有效,但可能会弄乱XCode的单元测试堆栈,特别是如果您不知道自己在做什么的话。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/RunPlatformUnitTests中替换

代码语言:javascript
复制
if [ "${TEST_HOST}" != "" ]; then

    Warning ${LINENO} "Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set)."

else

使用

代码语言:javascript
复制
if [ "${TEST_HOST}" != "" ]; then

    mkdir -p "${BUILT_PRODUCTS_DIR}/Documents"
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Caches"
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Preferences"
    mkdir -p "${BUILT_PRODUCTS_DIR}/tmp"

    export CFFIXED_USER_HOME="${BUILT_PRODUCTS_DIR}/"

    RunTestsForApplication "${TEST_HOST}" "${TEST_BUNDLE_PATH}"
else

您可以将固定用户迁移到不同的位置,但我认为您需要移动.app和.octest包。

-RegisterForSystemEvents添加到您的测试包的OTHER_TEST_FLAGS构建设置中。

确保您的测试包包含一个包含内容的运行脚本构建阶段

代码语言:javascript
复制
# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"

为您的测试创建一个新方案。

您应该能够使用标准的xcodebuild从命令行运行测试:

xcodebuild -workspace $(WORKSPACE_NAME).xcworkspace -scheme $(TEST_SCHEME) -configuration debug -sdk iphonesimulator

模拟器不能在运行测试时运行.

我希望这个信息是完整的,如果有些东西不能像预期的那样工作,请询问。

票数 14
EN

Stack Overflow用户

发布于 2012-07-28 01:56:22

您可以确保模拟器不使用以下代码运行:

osascript -e 'tell app "iPhone Simulator" to quit'

您可以使用以下命令确定模拟器是否处于活动状态:

sh -c 'ps -xaco command | grep "iPhone Simulator"'

票数 2
EN

Stack Overflow用户

发布于 2011-12-08 03:56:27

工作完美,谢谢!自动化测试又在我们的Jenkins CI服务器上发挥作用了!我得修好我的TEST_HOST=${BUNDLE_LOADER}。如果在运行测试时收到有关“没有这样的文件”的错误,请执行此操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6596741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档