Я пытаюсь настроить тест пользовательского интерфейса в своем проекте. Я делаю тест пользовательского интерфейса, который пытается войти в мою учетную запись для входа в приложение. Чтобы убедиться, что приглашение входа в систему отображается при запуске теста, я пытаюсь запустить ServerManager.logout()
, который находится в кодовой базе проекта. Это приведет к появлению приглашения на ввод при запуске.Доступ к проекту кода из XCTestCase - UI Test
import XCTest
class SmokeTest: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
ServerManager.logout()
}
func testLogin() {
let app = XCUIApplication()
let emailTextField = app.textFields["email textfield"]
emailTextField.tap()
emailTextField.typeText("[email protected]")
let passwordTextField = app.secureTextFields["password textfield"]
passwordTextField.tap()
passwordTextField.typeText("12345678")
let loginButton = app.buttons["log in button"]
loginButton.tap()
}
}
Как мне настроить мой проект, чтобы получить доступ к ServerManager
?
Когда я проверил целевое членство для целевого объекта UITest (называемого DonkeyProductionUITests) в файле ServerManager.swift, Xcode начал жаловаться, что многие ссылки в этом файле не определены для цели UITest. Поэтому я добавил целевое членство для всех файлов моего проекта в UITest Target, включая все CocoaPods. Он решил большинство вопросов. Тем не менее у меня есть некоторые странные остатки:
Какие исходные файлы если UITest цель иметь как «Источники Compile»?
Почему такие типы, как UIColor
и UIViewController
вдруг не распознаются Xcode?
Awesome, спасибо! Но немного раздражает .. Я просто хочу убедиться, что приложение находится в правильном состоянии при запуске теста, но это, похоже, не используется для 'func setup()' ... Не могли бы вы добавить ссылку на ссылка от яблока? – Wiingaard
Да, это немного неудобно, но вокруг не обойтись. Вы должны использовать пользовательский интерфейс вашего приложения, чтобы сбросить его после теста. Если вам нужно сделать это после каждого теста, вы можете переместить этот код в 'tearDown()'. Вот ссылка на документы: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html – joern
Не кажется ли вам, что это решение для запуска приложение с аргументами, например, это решение: http://stackoverflow.com/a/33466038/2299801 Спасибо :) – Wiingaard