Swift - 为什么Process.arguments返回空数组

时间:2016-05-25 20:02:18

标签: ios swift unit-testing xcode-ui-testing

我在iOS应用中进行了一些UI测试,但我发现了一些奇怪的行为。

在我的setUp()方法中,我向XCUIApplication().launchArguments添加了一些值,但当我查询启动参数时,我正在获取并清空数组。

这就是我的setUp()方法的样子:

override func setUp() {
    super.setUp()

    let application = XCUIApplication()
    application.launchArguments = ["USE_SERVER_DEBUG"]
    application.launch()
}

这是调用Process.arguments来检索参数的函数

func checkArguments(){
    let launchArguments = Process.arguments
    for index in 0 ..< launchArguments.count {
        let argument = launchArguments[index] as String

        if argument.compare("USE_DEBUG_SERVER") == NSComparisonResult.OrderedSame {
            // Do something
        }
    }
    return true
}

1 个答案:

答案 0 :(得分:0)

我不确定Exception in thread "Thread-1" java.lang.IllegalMonitorStateException at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at com.swa.rm.common.util.SingleBlockingQueue.take(SingleBlockingQueue.java:29) at RxOperatorTest$testSingleBlockingQueue$2.invoke(RxOperatorTest.kt:33) at RxOperatorTest$testSingleBlockingQueue$2.invoke(RxOperatorTest.kt:8) at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:18) 是您自己的班级还是拼写错误,但您应该使用Process

NSProcessInfo

另外,我通常建议不要设置启动参数。相反,您应追加给他们。但这比任何事情都更符合最佳做法。

if NSProcessInfo.processInfo().arguments.contains("USE_SERVER_DEBUG") {
    // Do something
}