2017-09-26 42 views
1

由于各种原因不值得进入讨论,但我认为是非常重要的 - 我想只有一个源集 - java源,并有测试在那 - 但我无法弄清楚如何用gradle来做到这一点。gradle测试和主集相同

如果我将测试源集指向相同的目录 - 我收到错误,说两个源集不能共享同一个根目录。

有没有简单的方法在gradle中告诉“测试”任务只使用主要的源代码集?

+0

我猜想,要在这里下车的预订有点值得讨论,因为这种方法*非常*非正统。尽管测试可能会在其工件中泄漏更敏感的东西,但您将同时发布源*和*测试代码。你想达到什么目的? – Makoto

+0

我们的代码是这样的: –

+0

我们的代码是这样的:class Blah {public static class Tests {// Blah的测试...} //内存的胆量...} - 因为许多原因更像是一个小的书籍,并且不适合512个字符。没有什么额外的发布,因为它是微不足道的过滤所有* $ Tests.class - 但根本上 - 无论您是否同意这种风格 - 我想知道如何让gradle做到这一点? –

回答

0

原来是更容易比我想象,去一个完全不同的方式,只是增加一个新的测试任务

task mainTest(type: Test) { 
    description = "Runs tests embedded in the code" 
    testClassesDir = sourceSets.main.output.classesDir 
    classpath = sourceSets.main.runtimeClasspath 
    binResultsDir=file("$buildDir/main-test-results") 
    reports { 
     html.destination = "$buildDir/reports/main" 
     junitXml.destination="$buildDir/reports/main" 
    }  
} 

check.dependsOn mainTest;