java - 无法在 Android Studio 中创建测试文件夹
问题描述
我有一个项目,我在其中创建了一个 Java 和一个 Android 库。
在 Android 库中,创建了一个测试文件夹,如下所示:
但是,我想在主应用程序模块中添加测试,而不是 Android 库。主应用是别人提供的代码,没有添加测试文件夹。
我最初尝试复制和粘贴文件夹,但现在我发现这导致了问题,因为我的新测试文件夹没有建立索引。换句话说,我无法访问任何外部类,并且 Android Studio / IntelliJ 编辑器没有响应:
解决方案
Android gradle 设置遵循标准的 maven 文件夹结构,即src/main/java
,src/test/java
等...
您的生产代码将进入src/main/java
,
您的 JVM 单元测试代码将进入src/test/java
,
您需要 Android 设备的测试将进入src/androidTest/java
。
这些是标准文件夹名称。Gradle 默认识别这些文件夹名称。如果你需要提供你自己的文件夹名称(你应该尽量避免这些),你需要在你的build.gradle
.
android {
sourceSets {
androidTest.java.srcDirs += "src/androidEndpointTest/java"
}
}
现在,在src/main/java
or里面src/androidTest/java
你可以创建任何Java file
你想要的。但是你不能在src/main/java
和src/androidTest/java
. 例如,您不能拥有src/main/java/com/example/SomeFile.java
and src/androidTest/java/com/example/SomeFile/java
。这是因为 Gradle 会在运行测试期间合并这些文件夹,并且您不能在同一个文件夹中拥有两个同名的文件。
推荐阅读
- terraform - Terraform 和 OpenStack - 零停机时间变化
- c# - SSIS C#脚本修改以在循环/列表中获取文件创建时间
- c# - 对 COM 互操作的浅薄理解会导致 TYPE_E_CANTLOADLIBRARY 异常 - 错误在哪里?
- html - 使用 ngClass 'Missing expected }' 收到错误
- ssh - scp 不允许文件传输,除了主目录
- javascript - 对多个 URL 的 GET API 请求
- javascript - 如何从夜间 javascript 自动化中的日期选择器日历中选择日期?
- mariadb - MariaDB 10.1 在 Debian 9.12 上使用过多 RAM
- python - 创建一个python字典,其中值是字符串列表
- typescript - 开玩笑未能运行测试,包括对 .d.ts 文件的引用