我们有一个非常罕见的要求,即我们的Android应用程序执行单元测试,这些测试使用了仅需要进行单元测试的资产.
使用基于Eclipse的SDK,这很简单明了 - 测试项目是一个带有自己资产文件夹的独立项目.对于Android Studio,这意味着可以在build.gradle(或按惯例)配置.
最后,我们的单元测试正在执行,但是我已经用尽了所有关于自定义(和理想情况下,合并)资源文件夹的建议.这是我尝试过的:
在android闭包中向sourceSets添加一个测试闭包(通过闭包我的意思是在build.gradle中的花括号之间).
androidTest {
assets.srcDirs = ['src/androidTest/assets/']
}
Run Code Online (Sandbox Code Playgroud)同样的事情,但使用"test"作为sourceSet的名称(与上面的"androidTest"相对)以及"instrumentTest".
这个问题可以更一般地说是"如何在Android Studio中使用不同的目录进行单元测试".
我们已经浏览了Android的文档,要么我们不理解它,它是错误的,或者某处有错误.
任何帮助将非常感谢.
冒着重复似乎是一个非常普遍的抱怨的风险,我想我对这个bug有很大的不同.
应用程序不会从Eclipse安装,并且会出现在控制台中:安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES.
LogCat提供了一些照明:包com.xxx在entry assets/fonts/helvetica_neue.ttf没有证书; 无视!
意味着设备(或仿真器)认为此特定文件未签名.
为此提出的通常解决方案是:
- 重命名违规文件.我们已经尝试过,然后它会抱怨下一个文件,然后是下一个文件,依此类推.
- 添加一个虚拟文件.也试过了.它抱怨新文件,无论它叫什么.
- 编译大于Android 1.6.我们正在编译2.3.
值得注意的是,只有在我们启动单元测试时才会发生这种情况.我们可以毫无困难地自行安装"真正的"应用程序.我们也使用Maven,当然还有Maven Android插件.
任何见解或建议都会非常受欢迎,当然如果我们自己想出来,我会发布任何调查结果.