- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以在过去,当您想在 Android 中进行测试时,您通常会创建一个新的测试项目,例如:
RealProject
|-- AndroidManifest.xml
|-- src
| |-- com
| | |-- example
| | | |-- Foo.java
`-- tests
`-- AndroidManifest
`-- src
`-- com
`-- example
`-- Foo.java
这意味着测试位于某处的项目中,按照惯例位于测试文件夹中。
在新的构建系统中,如果您要从现有的 android 项目迁移(并且必须支持使用 Eclipse 和 ant 的开发人员),New Build System User Guide 建议您这样做添加以下内容,以便它保持旧版本的项目结构。
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
在您尝试编写测试之前,一切都很好。鉴于上述结构,您打算将测试放入
RealProject
`-- tests
`-- java
`-- com
`-- example
`-- FooTest.java
两者的区别在于,Gradle 期望tests
中的子目录是java
,而ant 期望它是src
。
那么如何将这两个系统合并在一起。目标是我可以从 Gradle 或 ant 运行单元测试。 Gradle 似乎应该比 ant 测试系统更灵活,但我尝试放入 sourceSets 的东西组合似乎不起作用。它几乎看起来像 instrumentTest 不是普通的 sourceSet 或类似的东西。我试过:
tests/java
到 tests/src
instrumentTest { java.srcDirs = ['src'] }
这样的 block ,尝试我可以从主要 sourceSet 示例中制作的 *.srcDirs
的每个组合.最佳答案
这样做:
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest {
java.srcDirs = ['tests/src']
resources.srcDirs = ['tests/src']
aidl.srcDirs = ['tests/src']
renderscript.srcDirs = ['tests/src']
res.srcDirs = ['tests/res']
assets.srcDirs = ['tests/assets']
}
}
}
然后将您的测试 list 放入 tests/
。 Gradle 会忽略它,但 Ant/ADT 可以使用它。
创建tests/project.properties
并将测试项目指向../
在 Eclipse 中,您可以打开一个位于另一个项目中的项目,所以这应该不是问题。
关于android - Gradle 测试能否与旧式测试项目和平共处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137033/
我对 JavaScript 知之甚少,但尽管如此,我还是试图在我的 wordpress 博客上拼凑一些东西。它不起作用,我不知道如何解决它,嘿,这就是 StackOverflow 的用途,对吧? 首先
我是一名优秀的程序员,十分优秀!