Jenkins 让gradle执行JUnit测试(Android应用程序、Android Studio)

Jenkins 让gradle执行JUnit测试(Android应用程序、Android Studio),jenkins,gradle,android-studio,Jenkins,Gradle,Android Studio,我目前正在开发一个android应用程序,最近从Eclipse切换到了android Studio(这不是我的主意;))。但是,我希望配置jenkins服务器,以便定期运行JUnit测试和其他测试。为了实现这一点,我尝试配置一个gradle构建文件。以下是我的设置: 目录结构: -app -src -main -test build.gradle文件:(位于“src/build.gradle”中) Testclass MainActivityTest.

我目前正在开发一个android应用程序,最近从Eclipse切换到了android Studio(这不是我的主意;))。但是,我希望配置jenkins服务器,以便定期运行JUnit测试和其他测试。为了实现这一点,我尝试配置一个gradle构建文件。以下是我的设置:

目录结构:

-app

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

Testclass 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合作,我真的不知道我做错了什么。在互联网上,我只找到有类似问题的人,但没有人能找到适合我的解决方案。如果你能为我指出正确的方向,我将非常高兴


关于

在Android Studio中,单元测试似乎不是开箱即用的。我有一个工作的Gradle配置,在一些小配置之后使用Robolectric运行单元测试

见:

另外,要指定不同的测试文件夹,您需要改用androidTest

sourceSets {
        androidTest {
            setRoot('src/test')
        }
    }

错误消息表明不存在此类属性unitTest。测试依赖项是用instrumentTest(旧)或androidTest(新)声明的


Android sdk已经带有junit 3依赖项。所以只需删除该行即可。gradle应该进入
app
,而不是
app/src
。否则,构建输出将进入
app/src/build
(没有多大意义),而且
java.srcDir
路径也必须修复(相对路径总是相对于构建脚本)。此外,
java.srcDir
路径不得包含包名(即,它必须是
src/test/java
)。它必须是
依赖项而不是
依赖项{unitTest…
{unitTestCompile…
。我不确定您是否仅通过应用“Android”插件就可以获得非Android源代码集。您可能需要另外应用“java base”或“java”。在使用“java”插件时,您可以使用预定义的
test
源代码集(和
testCompile
配置),而不是声明您自己的源代码集
sourceSets {
        androidTest {
            setRoot('src/test')
        }
    }