React Native Integration测试Android

use*_*578 7 android integration-testing buck react-native

我无法理解集成测试如何与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;
}
Run Code Online (Sandbox Code Playgroud)

2.脚本在build gradle中调用一些编译本机代码的方法.(不确定我的gradle脚本是否应该具有相同的实现或略微不同于此)

echo "Compiling native code..."
./gradlew :ReactAndroid:packageReactNdkLibsForBuck
Run Code Online (Sandbox Code Playgroud)

3.然后脚本构建一些testbundle,其中包括用户想要运行的所有测试.我不确定这些测试的位置.然后放置一些输出.

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)
  1. 最后一个启动已加载和编译的测试.

因此,你可以从我不那么精明的解释中猜出,我很困惑要复制哪些文件以获得最低限度的工作作为我自己的测试.非常感谢在这方面的任何建议或指导.参考我可能忽略的文档也没关系.大多数情况下,我会欣赏这些测试如何运行的一些流程,所以我可以实现一个非常简单的测试来扩展自己.(所以我应该复制哪些文件,我应该更改哪些文件等).