Swift 如何使用特定目标运行Xcode UI测试
出于设计原因,我必须为不同的地区运行不同的目标。我最近开始使用Xcode进行UI测试,我立即遇到了麻烦 我遵循WWDC会话,添加了一个UI测试目标,该目标运行于其中一个目标之外 UI录制效果很好 问题是我的应用依赖于AppDelegate中的AppLocale来加载一些后端内容。因此,当我运行UI测试时,AppLocale返回默认的“us”,而不是预期的“it” 我当然试过手动编辑: 在实际测试中 但这些参数似乎没有到达我的应用程序,因为参数数组为空: 在AppDelegate中,-ApplicationIDLaunchWithOptions UI测试时的控制台输出 我的目标被配置为使用正确的区域设置和语言运行,在调试时,它们正是这样。当我以这种方式运行它们时,控制台中的输出与我预期的一样: 调试时的控制台输出 我试图确保UI测试目标到达实际的应用程序。我所做的是编辑测试目标的构建设置,并确保链接和测试部分指向正确的目标 这样我就可以加载正确的目标,并可以确认所有参数都已正确设置。但是现在发生的情况是,环境开始测试,但从未完成它 编辑测试目标的链接和测试时进行UI测试时的控制台输出 这是我在控制台中得到的,就这样。它就停在那里,之后就什么也没有发生 所以我的问题是我错过了什么?是否有一种方法可以非常具体地说明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
我将很乐意提供您需要的任何其他信息,以帮助我解决这个问题 我使用的代码稍有不同,对我来说也可以。我使用一个数组参数设置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"
]