我在设置 EarlGrey2 进行白盒测试时遇到问题。我可以很好地设置黑盒,但是当我的包附加到我的测试目标时,每当运行测试时,模拟器就会崩溃。
Xcode 11.4.1 iOS 模拟:12 和 13
脚步:
黑盒:(可以成功运行测试)
- https://github.com/google/EarlGrey/blob/earlgrey2/docs/setup.md
- https://medium.com/assertqualityassurance/earlgrey-2-direct-project-copy-setup-guide-8643207729cc
白框:(当捆绑包分配给测试目标时,模拟器在运行测试时崩溃)
- https://github.com/google/EarlGrey/blob/earlgrey2/docs/white-boxing-setup-guide.md
- https://medium.com/assertqualityassurance/earlgrey2-setting-up-white-box-testing-capability-e90af19a3fee
- 创建一个新的 MAC 捆绑包
- 开发工具包 - iOS
- 其他链接器标志:添加“-ObjC”
- 捆绑加载程序:'$(TARGET_BUILD_DIR)/EarlGreyWhiteBoxTest.app/EarlGreyWhiteBoxTest'
- 用户标题搜索路径:“EarlGrey”(递归)
- RunPath 搜索路径:'@loader_path/Frameworks'
- 构建阶段 -> 在被测应用程序上添加目标依赖项
- Link Binary With Libraries -> 添加对 AppFramework.framework 的依赖,将 Status 设置为 Optional
至此,我的包都构建成功了,我仍然可以运行 EarlGrey 黑盒测试
- 将 Bundle 嵌入到您正在测试的应用程序中
- 目的地:绝对路径
- 路径:$(TARGET_BUILD_DIR)/../..//EarlGreyHelperBundles
- 仅在安装时取消选中复制
- 副本上的代码签名
碰撞
模拟器 - iOS 13.4/usr/include/dispatch/once.h (dispatch_once()) - 第 84 行:
线程 1:异常:“错误:错误域 = NSCocoaErrorDomain Code=4 \”无法加载捆绑包“EG2Bundle”,因为无法找到其可执行文件。\” UserInfo={NSLocalizedFailureReason=捆绑包的可执行文件无法NSLocalizedRecoverySuggestion=尝试重新安装包。NSBundlePath=/Users/myuser/Library/Developer/CoreSimulator/Devices/91EDC677-10D4-443D-A651-5775031EFBA0/data/Containers/Bundle/Application/E2429B71-0C8E-4D84 -81CE-1C4A39BDF291/EarlGreyWhiteBoxTest.app/EarlGreyHelperBundles/EG2Bundle.bundle, NSLocalizedDescription=无法加载捆绑包“EG2Bundle”,因为无法找到其可执行文件。} 在加载远程对象类别捆绑包时看到"
如果我手动查看,则 NSBundlePath 上的包确实存在,所以我认为我遗漏了一些东西,因为我不确定为什么它不运行。
任何帮助将非常感激!