プロジェクトでUIテストをセットアップしようとしています。私は私のアプリのログインプロンプトからログインしようとするUIテストをしています。テストの起動時にログインプロンプトが表示されるようにするには、プロジェクトのコードベースにあるServerManager.logout()
を実行しようとしています。これにより、起動時にログインプロンプトが表示されます。私はServerManager
へのアクセスを得るために、私のプロジェクトを設定する必要がありますどのようにXCTestCaseからのプロジェクトコードへのアクセス - UIテスト
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.swiftファイルのUITestターゲット(と呼ばれるDonkeyProductionUITests)のターゲット会員に確認
は、Xcodeはそのファイル内の多くの参照がUITestターゲットに対して未定義だったと文句を始めました。だから私はすべてのCocoaPodを含むUITest TargetにプロジェクトのすべてのファイルのTarget Membershipを追加しました。それはほとんどの問題を解決しました。
UITest目標は「ソースをコンパイル」として持つべきである何をソースファイル:それでも私はいくつかの奇妙な残り物を持っていますか?
はなぜUIColor
とUIViewController
のようなタイプは、突然のXcodeによって、認識されていませんか?
恐縮です!しかし、ちょっと迷惑なものです。テストが開始されたときにアプリケーションが適切な状態になっていることを確認したいだけですが、これは 'func setup()'のユースケースではないようです。リンゴからの参照? – Wiingaard
はい、少し不便ですが、その周りに道はありません。あなたはテストの後にあなたのアプリのUIを使用してリセットする必要があります。それぞれのテストの後にそれを行う必要がある場合は、そのコードを 'tearDown()'に移動することができます。ここにdocsへのリンクがあります: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