微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – Gradle测试可以与旧式测试项目和平共处

所以在古代,当你想在Android上做测试时,你曾经做过一个新的测试项目,如:

RealProject
|-- AndroidManifest.xml
|-- src
|   |-- com
|   |   |-- example
|   |   |   |-- Foo.java
`-- tests
    `-- AndroidManifest
        `-- src
            `-- com
                `-- example
                    `-- Foo.java

这意味着测试是在一个生活在某个地方的项目中,按照约定在tests文件夹中.

在新的构建系统中,如果要从现有的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希望测试中的子目录是java,但ant希望它是src.

那么如何将这两个系统合并在一起呢?目标是我可以从Gradle或ant运行单元测试. Gradle似乎应该比蚂蚁测试系统更灵活,但我尝试在sourceSets中放置的东西的组合似乎没有效果.它几乎看起来像instrumentTest不是一个普通的sourceSet或类似的东西.我试过了:

>符号链接测试/ java到tests / src
>添加一个像instrumentTest {java.srcDirs = [‘src’]}这样的块,尝试从主要的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']
        }
    }
}

然后将测试清单放在tests /中. Gradle将忽略它,但Ant / ADT可以使用它.

创建tests / project.properties并将测试项目指向../

在Eclipse中,您可以打开另一个项目,这应该不是问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐