私はXcode 7.3でUIテストを作成していますが、最近は起動引数を追加してアプリ内でテストコードを有効にしたいと考えていました。私は最初にいくつかの人々が様々な投稿で行ったようにXCUIApplication().launchArguments
を設定しようとしましたが、うまくいきませんでした。Xcode 7.3でUITestingのlaunchArgumentsが動作しない
APIドキュメントに記載されていても、UIテストでlaunchArguments
とlaunchEnvironment
の両方を設定できないようです。
さらに、UIテストのスキームで起動引数と環境変数を設定しようとしたとき、ユニットテストやアプリケーションの実行時のように、アプリケーションに渡されなかった場所もあります。
ここに私がこれを証明した簡単なテストのコピーがあります。これらのテストはすべて失敗します。
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"])
}
}
他に誰かがこれに遭遇しましたか?あなたは仕事をしていますか?
うん。すべてのことを、引数が合格していない場合は実行しました。これが最初にこのバグに入ったのです。私はテストでargを設定し、アプリがそれを検出して応答させたいと思っていました。私の場合、ユーザーのデフォルトをクリアする。 – drekka
アップルが私に連絡を取り、あなたの答えは正しい。私が最初に読んだとき、それがうまくいく理由は明らかではなかったので、以下でより詳細な説明をしました。 – drekka