当前位置: 首页 > 面试题库 >

顺利执行JUnit Test(Android应用程序,Android Studio)

李洋
2023-03-14
问题内容

我目前正在开发一个Android应用程序,最近从Eclipse切换到Android
Studio(这不是我的想法;))。但是我想配置一个詹金斯服务器来定期运行JUnit测试和其他测试。为此,我尝试配置gradle
buidlfile。这是我的设置:

目录结构:

-app

    -src
        -main
        -test

build.gradle文件:(位于“ src / build.gradle”中)

    apply plugin: 'android'

    sourceSets {
        unitTest {
            java.srcDir file('src/test/java/[appName]/app')
        }
    }

    android {
        compileSdkVersion 19
        buildToolsVersion '19.0.3'

        defaultConfig {
            minSdkVersion 14
            targetSdkVersion 19
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
        sourceSets {
            instrumentTest.setRoot('src/test')
        }
    }

    task unitTest(type:Test) {
        testClassesDir = sourceSets.unitTest.output.classesDir
        classpath = sourceSets.unitTest.runtimeClasspath
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v13:+'
        compile 'com.android.support:appcompat-v7:+'
        compile 'com.android.support:support-v4:+'

        unitTest 'junit:junit:4.10'
    }

测试类MainActivityTest.java

    package [appName].app;

    import android.test.InstrumentationTestCase;
    import junit.framework.Assert;

    public class MainActivityTest extends InstrumentationTestCase{

        public void testMain(){
            Assert.assertEquals(1,2);
        }
    }

最重要的是错误消息:

    Error:(41, 0) Build script error, unsupported Gradle DSL method found: 'unitTest()'!

这是我第一次使用gradle和Android
Studio,但我真的不知道我在做什么错。在互联网上,我只发现有类似问题的人,但没有人找到对我有用的解决方案。如果您能指出正确的方向,我将非常高兴!

问候


问题答案:

错误消息表明没有此类属性unitTest。测试依赖项通过instrumentTest(旧)或androidTest(新)声明

Android SDK已带有junit 3依赖项。因此,只需删除该行



 类似资料:
  • 我是android studio的新手,正在制作一个简单的天气应用程序。我编写了代码,但仍然出现以下错误: 任务': app: dexDebug'执行失败。 通用域名格式。Android石斑鱼类。常见的过程ProcessException:org。格拉德尔。过程内部的ExecException:进程'command'/usr/lib/jvm/java-7-openjdk-amd64/bin/jav

  • 问题内容: 我尝试从一本书(Paul Hyde,Java Thread Programming)中运行示例。它说线程的顺序将互换。但是我总是得到:之后打印10个“主线程”,然后打印10个“新线程”。更有趣的是:如果我将使用tt.run而不是tt.start,那么结果将相反。也许这本书太老了,示例基于JDK 1.2的原因???代码如下: 问题答案: JVM决定何时将控制权从主线程转移到第二个线程。由

  • 我们有1000多条数据,请求1000次第三方个接口, 效率很是低下! 所以我想利用多线程的方式快速的调用完这1000次接口请求并处理响应 但是有个问题,线程是在for循环中执行的,调用顺序肯定是错乱的,这就导致接调用后 返回的结果肯定和List中的不匹配了··· 这种情况怎么能保证顺序呢?这是我的代码

  • 问题内容: 我们有一个基于石英的调度程序应用程序,该应用程序每分钟运行约1000个作业,每分钟的秒数均匀分布,即每秒约16-17个作业。理想情况下,这16-17个作业应同时触发,但是该作业的execute方法的第一个语句(仅记录执行时间)非常晚。例如,假设我们从05:00到05:04每分钟安排1000个作业。因此,理想情况下,计划在05:03:50进行的作业应该在05:03:50记录了execut

  • 问题内容: 我试图理解这段代码,不确定为什么第二遍在第一遍之前执行。如果有人真的可以帮助我,那就太好了! 输出: 问题答案: 您没有任何内容可以显式同步两个goroutine的顺序。如果运行足够的时间,您将看到调用以不同的顺序进行打印。当执行goroutine时,由于它们是并发操作,因此无法保证它们将何时执行和/或完成。您需要使用各种标准库程序包或通道本身来同步并发运行的goroutine的执行。

  • 在 M600 上使用 Polar 应用程式可让您充分利用这款专门针对运动而设计的智能手表。 通过以下链接了解有关如何使用 M600 上的 Polar 应用程式进行训练的详细信息: 佩戴 M600 开始训练 训练期间 暂停/停止训练 训练后