Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Gradle测试命令没有运行任何测试大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的测试实现,我可以在 Android studio上运行.
这个类在我的项目的/ src / androidTest目录里面. ApplicationTest.java:

@H_403_9@

@H_403_9@

public class ApplicationTest extends ApplicationTESTCase<Application> {
    public Applicationtest() {
        super(Application.class);
    }

    @Override
    protected void setUp() throws Exception {
        createApplication();
    }

    @smallTest
    public void testSample() {
        assertEquals("Pass: ",50,50);
        assertEquals("Fail: ",49);
    }
}

但是当我尝试使用以下命令通过gradle运行时,没有任何运行.我正在尝试的Gradle命令:@H_403_9@

@H_403_9@

./gradlew test

输出:@H_403_9@

@H_403_9@

c-08e-abaek-0:HelloTest abaek$./gradlew test
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugresources UP-TO-DATE
:app:mergeDebugresources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugresources UP-TO-DATE
:app:generateDebugsources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preCompileDebugUnitTestJava
:app:preDebugUnitTESTBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
:app:processDebugUnitTestJavaRes UP-TO-DATE
:app:compileDebugUnitTestJava UP-TO-DATE
:app:compileDebugUnitTestsources UP-TO-DATE
:app:mockableAndroidJar UP-TO-DATE
:app:assembleDebugUnitTest UP-TO-DATE
:app:testDebug UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkReleaseManifest
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets UP-TO-DATE
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseresources UP-TO-DATE
:app:mergeReleaseresources UP-TO-DATE
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseresources UP-TO-DATE
:app:generateReleasesources UP-TO-DATE
:app:processReleaseJavaRes UP-TO-DATE
:app:compileReleaseJava UP-TO-DATE
:app:preCompileReleaseUnitTestJava
:app:preReleaseUnitTESTBuild UP-TO-DATE
:app:prepareReleaseUnitTestDependencies
:app:processReleaseUnitTestJavaRes UP-TO-DATE
:app:compileReleaseUnitTestJava UP-TO-DATE
:app:compileReleaseUnitTestsources UP-TO-DATE
:app:assembleReleaseUnitTest UP-TO-DATE
:app:testRelease UP-TO-DATE
:app:test UP-TO-DATE

BUILD succesSFUL

@R_677_10586@l time: 3.303 secs

This build Could be faster,please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html

我究竟做错了什么?@H_403_9@

解决方法

我不熟悉各种Android测试,但我看到你正在尝试运行基本的单元测试.

@H_403_9@

命令:@H_403_9@

./gradlew测试@H_403_9@

将执行位于:src / test / java /目录中的纯java单元测试.@H_403_9@

纯Java测试Android上的单元测试@H_403_9@

如果要执行没有android依赖项的纯Java单元测试,可以在src / test / java目录中找到它们并按如下方式定义它们:@H_403_9@

@H_403_9@

@RunWith(JUnit4.class)
public class SampleTest {

  @Test
  public void testKiraiShouldSetAnInputAndNotBeNull() {
    // given
    int givenValue = 50;

    // when
    int expectedValue = 50; // you can generate this value by your app

    // then
    assertThat(givenvalue).isEqualTo(expectedvalue);
  }
}

此外,您应该在build.gradle文件中具有以下依赖项:@H_403_9@

@H_403_9@

dependencies {
  TESTCompile 'junit:junit:4.12'
  TESTCompile('com.google.truth:truth:0.25') {
    exclude group: 'junit' // Android has JUnit built in
  }
}

我正在使用Google Truth进行断言.这是非常方便的图书馆.
之后,您可以执行命令:@H_403_9@

./gradlew测试@H_403_9@

并且您的测试应该执行.此外,您还可以通过Android studio执行它们.@H_403_9@

如果您想查看纯Java测试的完整工作示例,可以在此处查看我的一个项目:https://github.com/pwittchen/kirai.@H_403_9@

使用Android依赖项进行单元测试@H_403_9@

如果您想使用Android依赖项创建单元测试(例如,使用Android SDK中的一些类),您应该将它们放在以下目录中:@H_403_9@

SRC / androidTest /@H_403_9@

示例性测试可以看起来如下:@H_403_9@

@H_403_9@

@RunWith(AndroidJUnit4.class)
public final class SampleTest {
  @Test
  public void testKiraiShouldSetAnInputAndNotBeNull() {
  // given
  int givenValue = 50;

  // when
  int expectedValue = 50; // you can generate this value by your app

  // then
  assertThat(givenvalue).isEqualTo(expectedvalue);
  }
}

基本上,与前一个示例的唯一区别是定义测试运行器的@RunWith注释的值以及您可以在此处使用Android SDK中的类的事实.@H_403_9@

您应该在build.gradle文件中定义以下依赖项:@H_403_9@

@H_403_9@

dependencies {
  androidTESTCompile 'com.android.support.test:tesTing-support-lib:0.1'
  androidTESTCompile('com.google.truth:truth:0.26') {
    exclude group: 'junit' // Android has JUnit built in.
  }  
}

此外,您应该在build.gradle文件中定义testinstrumentationRunner,如下所示:@H_403_9@

@H_403_9@

android {
  defaultConfig {
    testinstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
}

之后,您需要运行Android设备模拟器或将真正的Android设备连接到您的计算机并启用它上面的调试.@H_403_9@

然后,您可以执行以下命令:@H_403_9@

./gradlew connectedcheck@H_403_9@

它将在设备或仿真器上执行检测单元测试.您也可以从Android studio执行这些测试.@H_403_9@

如果你想看看带有Android依赖项的单元测试的完整工作示例,你可以检查我的另一个项目,我正在使用这种方法https://github.com/pwittchen/prefser.@H_403_9@

Android上的自动测试可能在开始时令人困惑,我知道你的痛苦.我希望我的帖子会有所帮助.

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

大佬总结

以上是大佬教程为你收集整理的android – Gradle测试命令没有运行任何测试全部内容,希望文章能够帮你解决android – Gradle测试命令没有运行任何测试所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。