androidTest上单元测试访问大量测试文件的最佳实践

问题描述 投票:0回答:1

我需要访问我的

androidTest
中的大量外部测试文件。如果我将它们作为资产或资源放在
androidTest/assets
目录中,则会导致编译后的unitest apk非常大,编译和安装非常耗时。

过去比较理想的方式是手动将相应文件复制到/sdcard作为测试的前提。

但是,较新的 Android 版本需要额外的权限并授予访问 SD 卡的操作。

androidManifest.xml
添加相应的权限会违背应用程序的原始需求。这是因为被测应用程序不需要该权限,仅用于测试目的。

我该怎么办?

android unit-testing
1个回答
0
投票

给你一个准确的解决方案有点困难,因为它很大程度上取决于你的具体情况,例如:

  • 这些测试文件是如何生成的,
  • 他们经常改变吗,
  • 这些文件的存储位置(云或其他系统),
  • 是在 CI 上执行的测试还是在本地执行的测试,
  • 是在模拟器还是真实设备上执行的测试

...等等。

也就是说,您可以评估以下解决方案:

  • 通过 REST API 提供这些文件,让测试访问该端点以检索文件。这当然有一个缺点,即增加了执行测试所需的总时间(因为测试需要下载文件)
  • 或者,构建一个自定义模拟器实例(或 docker 实例),在其中使用测试文件预先生成图像,并将它们放置在无需特殊许可即可公开访问的文件夹中(例如
    /sdcard/Documents
    /data/local/tmp
    或应用程序的私人区域)
© www.soinside.com 2019 - 2024. All rights reserved.