我无法理解集成测试如何与 android 一起运行。我浏览了文档并设置了他们的示例项目,并且可以成功运行测试。但是,我对如何将这些部分组合在一起为我自己的项目创建自己的测试完全感到困惑。我已经完成了对 iOS 的集成测试,我希望重用我为测试编写的 javascript 文件,但是在示例应用程序中看起来他们制作了新的测试文件......?无论如何,我会解释我可能有缺陷的理解,如果有人能帮我把这些部分放在一起,我将不胜感激。
我的理解如下:
1. 调用集成测试脚本,首先检查是否安装了 buck:
set -e
which buck > /dev/null || {
echo "React Native uses the Buck build tool to run tests. Please install Buck: https://buckbuild.com/setup/install.html";
exit 1;
}
2. 脚本调用 build gradle 中的一些方法来编译原生代码。(不确定我的 gradle 脚本是否应该具有相同的实现或与此略有不同)
echo "Compiling native code..."
./gradlew :ReactAndroid:packageReactNdkLibsForBuck
3. 然后脚本构建一些测试包,其中包括用户想要运行的所有测试。我也不确定这些测试的位置。然后放置一些输出。
echo "Building JS bundle..."
node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
4. 然后使用一些 buck 文件,加载依赖并准备运行,最后安装到设备上。不确定我是否需要依赖项或者是否应该完全复制此文件。
echo "Installing test app on the device..."
buck fetch ReactAndroid/src/androidTest/buck-runner:instrumentation-tests
buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests
echo "Running integration tests..."
adb shell am instrument -w com.facebook.react.tests/android.support.test.runner.AndroidJUnitRunner
- 最后一个启动已加载并编译的测试。
因此,您可以从我不那么精明的解释中猜到,我很困惑要复制哪些文件才能使某些东西像我自己的测试一样最低限度地工作。对此领域的任何建议或指导将不胜感激。参考我可能忽略的文档也可以。大多数情况下,我会很欣赏这些测试如何运行的某种流程,这样我就可以实现一个非常简单的来扩展自己。(所以我应该复制哪些文件,我应该更改哪些文件等)。