【问题标题】:Xcode UI Test environment variables not being passed from Scheme未从 Scheme 传递 Xcode UI 测试环境变量
【发布时间】:2018-01-11 02:42:37
【问题描述】:

在 Xcode 9.2 中,对于我的 iOS 应用程序,我有一个运行我的 UI 测试套件的方案。在这个方案中,在“测试”选项卡下,我定义了环境变量和参数。当我的测试运行时,这些变量对我的应用程序代码不可用。

但是,我可以在测试代码中以编程方式设置参数和 launchEnvironment,这些参数在应用程序运行时可供测试。

我还在“运行”选项卡中设置了环境变量和参数,当我仅在模拟器中运行应用程序时,这些都是可用的。当我运行 UI 测试时,它们不可用,无论我是否打开了“使用运行操作的参数和环境变量”。

要查看 args 和 env vars 的值,我在 applicationDidFinishLaunchingpo ProcessInfo.processInfo.environmentpo ProcessInfo.processInfo.arguments 中设置了一个断点。

我在这里设置错误吗?

【问题讨论】:

  • 建议你突破验证代码是否运行,并通过'p print'命令行输出

标签: ios xcode xcode-ui-testing


【解决方案1】:

方案编辑器中提供的启动参数和启动环境仅传递给 UI 测试运行程序。您只能在 UI 测试类中读取这些值。

如果您想将这些值传递给应用程序本身,您必须在代码中进行:

let app = XCUIApplication()
app.launchArguments = ["amandaArgument"]
app.launchEnvironment = ["AMANDA_UI_TESTING": "Value"]
app.launch()

【讨论】:

  • 当您将环境置于测试设置中时,它不会在录制 UI 交互时运行。有什么方法可以让应用程序使用基于方案的设置启动?
  • 哦,这很明显。答案是按照此处所述放置launchEnvironment 变量,并将其添加到测试操作的环境变量中。环境变量将提供给 UI 测试运行器,但在记录 UI 测试时,它会提供给应用程序实例。
  • 可以在XCUITest测试方法中写入
  • 你有这个答案的参考吗?我想了解更多。
  • 我只有官方documentation、WWDC 和AutoMate 项目。
猜你喜欢
  • 2020-03-02
  • 2021-01-15
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2019-09-14
  • 2018-12-02
相关资源
最近更新 更多