Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何使用特定目标运行Xcode UI测试_Swift_Environment Variables_Xcode7_Xcode Ui Testing - Fatal编程技术网

Swift 如何使用特定目标运行Xcode UI测试

Swift 如何使用特定目标运行Xcode UI测试,swift,environment-variables,xcode7,xcode-ui-testing,Swift,Environment Variables,Xcode7,Xcode Ui Testing,出于设计原因,我必须为不同的地区运行不同的目标。我最近开始使用Xcode进行UI测试,我立即遇到了麻烦 我遵循WWDC会话,添加了一个UI测试目标,该目标运行于其中一个目标之外 UI录制效果很好 问题是我的应用依赖于AppDelegate中的AppLocale来加载一些后端内容。因此,当我运行UI测试时,AppLocale返回默认的“us”,而不是预期的“it” 我当然试过手动编辑: 在实际测试中 但这些参数似乎没有到达我的应用程序,因为参数数组为空: 在AppDelegate中,-Applic

出于设计原因,我必须为不同的地区运行不同的目标。我最近开始使用Xcode进行UI测试,我立即遇到了麻烦

我遵循WWDC会话,添加了一个UI测试目标,该目标运行于其中一个目标之外

UI录制效果很好

问题是我的应用依赖于AppDelegate中的AppLocale来加载一些后端内容。因此,当我运行UI测试时,AppLocale返回默认的“us”,而不是预期的“it”

我当然试过手动编辑:

在实际测试中

但这些参数似乎没有到达我的应用程序,因为参数数组为空:

在AppDelegate中,-ApplicationIDLaunchWithOptions

UI测试时的控制台输出

我的目标被配置为使用正确的区域设置和语言运行,在调试时,它们正是这样。当我以这种方式运行它们时,控制台中的输出与我预期的一样:

调试时的控制台输出

我试图确保UI测试目标到达实际的应用程序。我所做的是编辑测试目标的构建设置,并确保链接测试部分指向正确的目标

这样我就可以加载正确的目标,并可以确认所有参数都已正确设置。但是现在发生的情况是,环境开始测试,但从未完成它

编辑测试目标的链接和测试时进行UI测试时的控制台输出

这是我在控制台中得到的,就这样。它就停在那里,之后就什么也没有发生

所以我的问题是我错过了什么?是否有一种方法可以非常具体地说明UI测试运行的目标是什么


我将很乐意提供您需要的任何其他信息,以帮助我解决这个问题

我使用的代码稍有不同,对我来说也可以。我使用一个数组参数设置launchArguments,该参数包含所有需要的参数

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
    app = XCUIApplication()
    app.launchArguments = [
        "-inUITest",
        "-AppleLanguages",
        "(de)",
        "-AppleLocale",
        "de_DE"
    ]
var arguments = NSProcessInfo.processInfo().arguments
print("arguments: \(arguments)")
print(appID)
arguments: []
iphone1.us.prod
arguments: ["-AppleLocale", "it_IT", "-AppleLanguages", "(it)", "-NSTreatUnknownArgumentsAsOpen", "NO", "-ApplePersistenceIgnoreState", "YES"]
iphone1.it.prod
Test Case MyTestCase started.
    t =     0.00s     Start Test
    t =     0.00s     Set Up
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
    app = XCUIApplication()
    app.launchArguments = [
        "-inUITest",
        "-AppleLanguages",
        "(de)",
        "-AppleLocale",
        "de_DE"
    ]