如何在UI测试中获取和编辑NSBundle信息?

时间:2016-07-25 03:16:57

标签: ios xcode xcode-ui-testing

我的项目有三个目标。

其中一个是ui测试目标,在info标记中,我尝试将iOS Target Properties->Bundle versions string, short更改为2.5.0(与主项目相同)。

在编辑之前,我创建.pch文件并将其与ui测试目标关联。

在一个测试文件中,我会注销[[NSBundle mainBundle] infoDictionary]个详细信息,但会显示CFBundleShortVersionString = "1.0"CFBundleIdentifier = "com.apple.test.xxxxUITests-Runner"

属性infoDictionary是readonly。

所以我的问题是,为什么日志详细信息与ui测试目标信息不同,以及如何在ui测试中控制版本字符串?

1 个答案:

答案 0 :(得分:1)

当您从UI测试代码中调用[[NSBundle mainBundle] infoDictionary]时,它会从UITests文件夹中的 Info.plist 获取信息,而不是从主项目文件夹中获取信息(您的应用代码)。

默认情况下,您的UI测试版本设置为1.0,这就是您看到CFBundleShortVersionString = "1.0"的原因。

您的UI测试跑步者应用程序是单独编译到您正在测试的应用程序,并且没有权力更改应用程序代码或配置的内部,除非有一种做法在您的应用的UI中。

我不确定您是通过更改版本号来尝试实现的,但是如果您需要模拟对应用程序内部的更改,请使用单元测试而不是UI测试可能是前进的方向。