当前位置: 首页 > 知识库问答 >
问题:

Gradle Android测试

隆飞驰
2023-03-14

我是gradle和Android Studio的新手,我正在尝试弄清楚如何运行测试。我遵循了http://tools . Android . com/tech-docs/new-build-system/user-guide # TOC-Testing中的说明,我可以运行仪器测试,但只能执行< code >/grad Lew connectedInstrumentTest 。我很难理解其他的< code>check任务,它们不会在我的应用程序中执行任何代码。这就是<代码>。/gradlew任务打印

...
Verification tasks
------------------
check - Runs all checks.
connectedCheck - Runs all device checks on currently connected devices.
connectedInstrumentTest - Installs and runs the tests for Build 'Debug' on connected devices.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
...

如果<code>check

还有,我如何运行不需要Android环境的测试?我应该把它们放在/test/java下吗?如果是,我应该运行什么命令来执行它们?

如果这些问题看起来很明显,很抱歉,但我只是在文档中找不到这些问题的任何答案。

非常感谢。

编辑:

所以我在这里取得了一些进展。看起来check没有做任何事情。(现在)由开发人员将依赖任务添加到check以运行一些JUnit测试。您将需要创建一个任务,让它找到源,编译它们并运行它们。

connectedCheckconnectedInstrumentTest:在设备中运行instrumentationTest。(这一直有效)。

deviceCheck:正如文档所说,这对于持续集成测试非常有用。

共有2个答案

段干子晋
2023-03-14

检查应该运行检测测试 IIRC.关于运行非Android测试。目前,android-gradle插件不支持它。但是,我制作了一个插件来运行带有robolectric的JUnit测试,因此您不需要仪器测试。这是链接:android-unit-test

景稳
2023-03-14

>

  • 如果check运行所有检查...它不应该运行我从ConnectedInstrumentTest获得的那些吗?您可以必须将ConnectedInstrumentTest任务作为依赖项运行以检查任务。

    check.dependson connectedInstrumentTest

    如何运行不需要 Android 环境的测试?

    对于Android项目,我们可以讨论3种类型的测试

      < li>Junit测试 < li >机器人电气测试 < li >仪器测试

    朱尼特测试

    我们不能使用普通的jUnit测试来检查android相关的类。我们可以做的是将核心java类分离到java库项目并将该依赖项添加到android项目。

    机器人测试

    我们可以使用机器人测试在模拟器外部运行单元测试。这使得使用 CI 服务器快速轻松地配置测试。

    为了运行robolectric测试,我们使用gradle android测试插件。它清楚地描述了如何使用该插件。

    项目结构

    为了使用这个插件,我们必须使用默认的文件夹结构。我们必须使用名为“test”的文件夹来保存机器人电气测试:

     MyProject/
       | settings.gradle
       | build.gradle
       - app/
           | build.gradle
            -main
               -java
                  -com.example.calculator    
    
            -test
               -java
                  -com.example.calculator.robolectrictests
    

    生成文件是

    buildscript {
        repositories {
            mavenCentral()
            maven {
                url 'https://oss.sonatype.org/content/repositories/snapshots/'
            }
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
        classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'
    }
    apply plugin: 'android'
    apply plugin: 'android-test'
    
    repositories {
        mavenCentral()
    }
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
        defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19         
        }
    }
    dependencies {
        compile 'com.android.support:appcompat-v7:+'   
        testCompile 'junit:junit:4.10'
        testCompile 'org.robolectric:robolectric:2.1.+'
        testCompile 'com.squareup:fest-android:1.0.+'
    }
    

    此测试任务将与检查任务一起自动执行。

    仪器测试

    正如您提到的,这需要使用android模拟器。这使得测试速度变慢,这意味着它们不是进行TDD的好方法。

    我们可以使用机器人测试作为TDD过程中的单元测试。仪器测试可以作为TDD中的集成测试。

  •  类似资料:
    • 我有一个如下结构的android模块: 我在模块的build.gradle文件中定义了两个产品风味,称为flavor1和flavor2,位于文件夹src/main/assets/flavor1/下,而src/main/assets/flavor2是完全不同的动态库,例如:libhelper.so。它们适用于不同的产品风味。 我的意图是在gradle构建过程中,根据产品风格将不同的动态库复制到jni

    • 22.13.5.测试检测 测试任务检测哪些类是通过检查编译测试类的测试类。默认情况下它会扫描所有.calss文件.可以自定义包含/排除哪些类需不要要被扫描.所使用不同的测试框架(JUnit/ TestNG)时测试类检测使用不同的标准。 当使用JUnit,我们扫描的JUnit3和JUnit4的测试类。如果任一下列条件匹配,类被认为是一个JUnit测试类: 类或父类集成自TestCase或Groovy

    • 单元测试是用来校验程序的正确性的,然而,程序能正常运行后,往往还需要测试程序(一部分)的执行速度,这时,f就需要用到性能测试。 通常来讲,所谓性能测试,指的是测量程序运行的速度,即运行一次要多少时间(通常是执行多次求平均值)。Rust 竟然连这个特性都集成在语言基础特性中,真的是一门很重视工程性的语言。 下面直接说明如何使用。 cargo new benchit cd benchit 编辑 src

    • 程序测试是一种找到缺陷的有效方式,但是它对证明没有缺陷却无能为力。 Edsger W. Dijkstra, “The Humble Programmer” (1972) 作为软件工程质量保障体系的重要一环,测试是应该引起我们充分注意并重视的事情。前面说过,Rust 语言的设计集成了最近十多年中总结出来的大量最佳工程实践,而对测试的原生集成也正体现了这一点。下面来看 Rust 是怎么设计测试特性的。

    • 本章讲解 Rust 中内建的测试与评测相关知识。 测试 (testing) 评测 (benchmark)

    • import counter from './counter'; describe('counter reducers', () => { it('should handle initial state', () => {

    • 下面的示例会为您测试Redux应用程序打下坚实的基础。

    • 就像 会编译代码并运行生成的二进制文件一样,cargo test 在测试模式下编译代码并运行生成的测试二进制文件。可以指定命令行参数来改变 cargo test 的默认行为。例如,cargo test 生成的二进制文件的默认行为是并行的运行所有测试,并捕获测试运行过程中产生的输出避免他们被显示出来,使得阅读测试结果相关的内容变得更容易。 这些选项的一部分可以传递给 cargo test,而另一些则