2017-09-26 3 views
1

Aus verschiedenen Gründen nicht wert, in eine Diskussion über, aber, dass ich denke, sind sehr wichtig - ich möchte nur eine Quelle gesetzt haben - die Java-Quelle, und die Tests sein in diesem - Aber ich kann nicht herausfinden, wie man es mit Gradle macht.Gradle Test und Main setzt die gleichen

Wenn ich das Testquellset auf das gleiche Verzeichnis zeige, erhalte ich Fehler, die besagen, dass zwei Quellsätze nicht den gleichen Stamm teilen können.

Gibt es einen einfachen Weg in Gradle, nur die "Test" Aufgabe zu sagen, nur die Hauptquelle zu verwenden?

+0

ich vermuten würde, dass die Reservierung hier abgehend etwas wert ist die Diskussion, da dieser Ansatz ist * sehr * unorthodox. Ungeachtet der Tatsache, dass Tests dazu neigen, empfindlichere Dinge in ihren Artefakten zu verlieren, würden Sie sowohl den Quellcode * als auch den * Testcode gleichzeitig veröffentlichen. Was versuchst du zu erreichen? – Makoto

+0

Wir Code wie folgt: –

+0

Wir Code wie folgt: Klasse Blah {öffentliche statische Klasse Tests {// Tests von Blah ...} // Eingeweide von Blah ...} - für viele, viele Gründe, die eher wie ein kleiner sind Buch, und wird nicht in 512 Zeichen passen. Es gibt nichts extra veröffentlicht, da es einfach ist, alle * $ Tests.class herauszufiltern - aber grundsätzlich - ob Sie diesem Stil zustimmen oder nicht - möchte ich wissen, wie man es macht? –

Antwort

0

stellt sich heraus, leichter zu sein, als ich dachte, eine ganz andere Art und Weise zu gehen und nur das Hinzufügen eine neue Testaufgabe

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; 
Verwandte Themen