2016-05-25 3 views
0

Я занимаюсь тестированием пользовательского интерфейса в своем приложении iOS, но вижу странное поведение.Swift - почему Process.arguments возвращает пустой массив

В моем методе 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 
} 
+0

Я ничего не знаю об автоматизации, но проверяю этот ответ. Похоже, что вы не можете получить доступ к правильному процессу. http://stackoverflow.com/a/33335994/1671729 – Putz1103

ответ

0

Я не уверен, если Process ваш собственный класс или опечатка, но вы должны использовать NSProcessInfo.

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

Кроме того, я обычно рекомендую против установки аргументов запуска. Вместо этого вы должны указать append. Но это скорее лучшая практика, чем что-либо.

application.launchArguments += "USE_SERVER_DEBUG" 
+0

'Процесс' - это аргументы командной строки Swift для текущего процесса. – Moritz

Смежные вопросы