Я писал тесты пользовательского интерфейса в Xcode 7.3 и недавно хотел добавить аргумент запуска, чтобы включить некоторый тестовый код внутри приложения. Сначала я попытался установить XCUIApplication().launchArguments
, как это сделали несколько человек в разных сообщениях, но они не сработали.
Покопавшись, оказалось, что и launchArguments
, и launchEnvironment
нельзя настроить в тесте пользовательского интерфейса, хотя в документации API сказано, что они могут.
Кроме того, когда я попытался установить аргументы запуска и переменные среды в схеме тестирования пользовательского интерфейса, они также не были переданы в приложение, где, как при модульном тестировании или запуске приложения, они есть.
Вот копия быстрых тестов, которые я сделал, чтобы доказать это, все эти тесты терпят неудачу.
import XCTest
class LaunchDebugUITests: XCTestCase {
func testLaunchArgumentsSetting() {
XCUIApplication().launchArguments = ["abc"]
print("Arguments \(XCUIApplication().launchArguments)")
XCTAssertTrue(XCUIApplication().launchArguments.contains("abc"))
}
func testLaunchArgumentsAppending() {
XCUIApplication().launchArguments.append("abc")
print("Arguments \(XCUIApplication().launchArguments)")
XCTAssertTrue(XCUIApplication().launchArguments.contains("abc"))
}
func testLaunchEnvironmentSetting() {
XCUIApplication().launchEnvironment = ["abc":"def"]
print("Environment \(XCUIApplication().launchEnvironment)")
XCTAssertEqual("def", XCUIApplication().launchEnvironment["abc"])
}
func testLaunchEnvironmentAppending() {
XCUIApplication().launchEnvironment["abc"] = "def"
print("Environment \(XCUIApplication().launchEnvironment)")
XCTAssertEqual("def", XCUIApplication().launchEnvironment["abc"])
}
}
кто-нибудь еще сталкивался с этим? У вас есть работа вокруг?