2

我使用 detox 在 react native 上运行 e2e 测试。

一位从事排毒工作的人写的这篇文章说

灰盒本质上使用了一段植入应用程序的代码,它可以帮助我们看到里面发生了什么。

我的问题是,这是怎么发生的?查看用于命令的文档detox build

xcodebuild -project ios/YourProject.xcodeproj -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build

那里没有专门提到排毒。

此外,文档在此处声明 build 命令是可选的,并且

你也可以选择不使用,自己提供编译好的app。

好吧,我该怎么做?如何注入排毒/确保没有将排毒注入我的应用程序?如果我从我的 CI 服务器下载已编译的应用程序,它不适用于 detox(这并不奇怪,因为 detox 代码没有植入应用程序中)。但是,如果我使用该detox build命令(它似乎只是运行build配置中指定的任何命令),则测试工作。似乎发生了一些对于新手来说无法理解的“魔法”。

谢谢。

4

1 回答 1

4

这是魔法!

嗯,实际上并非如此。构建步骤完全可选的,并且如文档中所述,Detox 适用于任何有效的应用程序。

为了加载 Detox,我们告诉动态链接器使用DYLD_INSERT_LIBRARIES环境变量加载它。因此,它仅在您从命令行运行时加载 Detox detox test

这在模拟器上很容易,因为它可以访问 Mac 的文件系统。一旦我们在实际硬件设备上实现了对测试的支持,我们仍将使用该环境变量,但我们必须将其直接注入您的 IPA 文件中。

于 2018-03-23T12:28:03.733 回答