在 Bitrich 的 AndroidTestResources 文件夹中
AndroidTest Resource Folder in Bitrise
我正在 Bitrise 中配置一个工作流,以 运行 我对 Android 项目的仪器测试。我不知道为什么 Android 测试资源目录在 Bitrise ui 测试期间不可用。我的 build.gradle
里有这个
sourceSets {
androidTest {
resources.srcDirs += ['src/AndroidTest/assets']
}
}
我这样做是为了从我的测试中加载资产:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(filename);
这在本地运行顺利,但在 Bitrise 中找不到资产。对这个问题有什么想法吗?
谢谢!
我找到了解决问题的方法。我没有在 src/AndroidTest/assets
中添加资源,而是为调试构建变体创建了一个新的资产文件夹:
在这种情况下,我不再需要将资产添加为附加文件夹,因为它已经包含在测试 apk 中。使用调试构建变体,这个文件夹将不会包含在发布 apk 中,所以这个解决方案对我来说很好用。
唯一不同的是,现在为了加载资源,我需要通过测试中的上下文按以下方式进行:
InputStream inputStream = InstrumentationRegistry.getTargetContext().getAssets().open("mock/" + filename);
我正在 Bitrise 中配置一个工作流,以 运行 我对 Android 项目的仪器测试。我不知道为什么 Android 测试资源目录在 Bitrise ui 测试期间不可用。我的 build.gradle
sourceSets {
androidTest {
resources.srcDirs += ['src/AndroidTest/assets']
}
}
我这样做是为了从我的测试中加载资产:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(filename);
这在本地运行顺利,但在 Bitrise 中找不到资产。对这个问题有什么想法吗?
谢谢!
我找到了解决问题的方法。我没有在 src/AndroidTest/assets
中添加资源,而是为调试构建变体创建了一个新的资产文件夹:
在这种情况下,我不再需要将资产添加为附加文件夹,因为它已经包含在测试 apk 中。使用调试构建变体,这个文件夹将不会包含在发布 apk 中,所以这个解决方案对我来说很好用。
唯一不同的是,现在为了加载资源,我需要通过测试中的上下文按以下方式进行:
InputStream inputStream = InstrumentationRegistry.getTargetContext().getAssets().open("mock/" + filename);