摇篮。生成测试后,JUnit lib不可见

时间:2015-04-17 05:05:09

标签: java junit gradle

在我的项目中,我动态生成源代码。
现在我想为它生成测试。

使用以下gradle构建文件成功生成源代码:

apply plugin: 'com.android.library'

configurations {pmd}

android {
    ...
    gradle.projectsEvaluated {
        preBuild.dependsOn genSources
    }
    sourceSets {
        main {
            java {
                srcDir 'target/generated-sources/main/java'
            }
        }
    }
}

task genSources << {
    println "Generating sources...."
    ant.fmpp configuration:"src/main/resources/codegen/config.fmpp",
        sourceRoot:"src/main/resources/codegen/templates",
        outputRoot:"target/generated-sources/main/java";
}

dependencies {        
    ...
    testCompile 'junit:junit:4.12'
    ...
}

buildscript {
    repositories {
        maven {
            url "http://repo1.maven.org/maven2/"
        }
    }

    dependencies {
        classpath group: 'net.sourceforge.fmpp', name: 'fmpp', version: '0.9.14'
    }

    ant.taskdef(name: 'fmpp', classname:'fmpp.tools.AntTask', classpath: buildscript.configurations.classpath.asPath)
}

sourceSets 有生成源代码的链接。
因此,我可以从应用程序的源代码中使用它。

目前我认为如何生成测试,在哪个文件夹中生成测试以及如何将它们与junit库链接。

我使用了类似的逻辑。 (绝对不确定是否正确)
我为测试生成再创建了一个任务:

task genTests << {
    println "Generating tests...."
    ant.fmpp configuration:"src/main/resources/codegen/config.fmpp",
        sourceRoot:"src/main/resources/codegen/templates/tests",
        outputRoot:"target/generated-sources/main/java/tests";
}

将此任务添加到构建过程

gradle.projectsEvaluated {
    preBuild.dependsOn genSources
    preBuild.dependsOn genTests
}

并在sourceSets添加了以下行:

sourceSets {
    main {
        java {
            srcDir 'target/generated-sources/main/java'
        }
    }
    test {
        java {
            srcDir 'target/generated-sources/main/java/tests'
        }
    }
}

android studio个文件中有以下结构:

java
    com.package.model
    com.package.model(test)

生成测试测试,但是 它们在单独的文件夹中生成,例如

 java
    com.package.model
    com.package.model(test)
    com.generatedpackage.model <--- here (physical location is in target folder)
找不到

junit库:

import org.junit.Test;

无法解析符号测试。

测试生成的正确方法是什么?或者至少如何为测试添加junit的依赖项?

0 个答案:

没有答案