【问题标题】:Launching Unit Tests from ios-sim doesn't execute all tests从 ios-sim 启动单元测试不会执行所有测试
【发布时间】:2015-02-20 07:55:56
【问题描述】:

我正在尝试使用 ios-sim 使用此处描述的方法从我的 CI 启动测试:https://confluence.atlassian.com/display/BAMBOO/Xcode,但不是SenTest,我在我的应用程序中使用XCTest,所以最后一个参数不应该是

--args -SenTest All

但类似

-args -XCTest All

如果我使用这样的参数,并不是所有的测试都会被执行。如何指定使用 XCtest 执行所有测试?如果我使用

--args -XCTest -test All 

没有执行任何测试。完整的启动命令:

ios-sim launch Target.app --devicetypeid 'com.apple.CoreSimulator.SimDeviceType.iPhone-5s, 8.1' --setenv DYLD_INSERT_LIBRARIES="/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection" --setenv XCInjectBundle="UnitTests.xctest" --setenv XCInjectBundleInto="Target.app/Target" --args -XCTest All "UnitTests.xctest"

【问题讨论】:

    标签: ios objective-c unit-testing ios-simulator xctest


    【解决方案1】:

    2 分:

    首先,这可能失败的原因是您的 DYLD_INSERT_LIBRARIES 错误。您应该使用“../../Library/PrivateFrameworks/IDEBund leInjection.framework/IDEBundleInjection”而不是“/../../Library/PrivateFrameworks/IDEBund leInjection.framework/IDEBundleInjection"

    其次,从 Xcode 6 开始,支持的方式是使用 simctl:

    SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection"
    SIMCTL_CHILD_XCInjectBundleInto="Target.app/Target"
    SIMCTL_CHILD_XCInjectBundle="UnitTests.xctest"
    xcrun simctl launch [device udid or "booted"] com.mycompany.myapp -XCTest All "UnitTests.xctest"
    

    【讨论】:

    • 感谢您的回答。我认为 DYDL_INSERT_LIBRARIES 路径是正确的,因为测试已经启动。我将尝试使用 xcrun simctl 启动模拟器并在之后运行测试
    • Jeremy,我已经使用 simctl 启动了测试,但是没有关于测试的输出,我也不确定是否执行了测试。我已经从Debug-iphonesimulatorDerivedData 安装并注入包
    猜你喜欢
    • 2020-11-21
    • 2011-10-04
    • 2020-05-23
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2021-09-11
    • 2015-09-10
    • 2019-01-04
    相关资源
    最近更新 更多