mirror of
https://github.com/less/less.js.git
synced 2026-02-08 05:55:00 -05:00
added colored output, added gradle property 'test' to execute a specific test only (use for example: -Ptest=urls)
This commit is contained in:
104
build.gradle
104
build.gradle
@@ -96,57 +96,75 @@ class RhinoTest extends DefaultTask {
|
||||
def options = []
|
||||
def expectErrors = false
|
||||
|
||||
def stylize(str, style) {
|
||||
def styles = [
|
||||
reset : [0, 0],
|
||||
bold : [1, 22],
|
||||
inverse : [7, 27],
|
||||
underline : [4, 24],
|
||||
yellow : [33, 39],
|
||||
green : [32, 39],
|
||||
red : [31, 39],
|
||||
grey : [90, 39]
|
||||
];
|
||||
return '\033[' + styles[style][0] + 'm' + str +
|
||||
'\033[' + styles[style][1] + 'm';
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
def runTest() {
|
||||
int testSuccesses = 0, testFailures = 0, testErrors = 0
|
||||
project.file('test/less/' + testDir).eachFileMatch(FileType.FILES, ~/.*\.less/) { lessFile ->
|
||||
print lessFile
|
||||
|
||||
def out = new java.io.ByteArrayOutputStream()
|
||||
def execOptions = {
|
||||
main = 'org.mozilla.javascript.tools.shell.Main'
|
||||
// main = 'org.mozilla.javascript.tools.debugger.Main'
|
||||
classpath = project.configurations.rhino
|
||||
args = [project.rhinoTestSrc, lessFile] + options
|
||||
standardOutput = out
|
||||
ignoreExitValue = true
|
||||
}
|
||||
try {
|
||||
def exec = project.javaexec(execOptions)
|
||||
def actual = out.toString().trim()
|
||||
def actualResult = project.file(lessFile.path.replace('test/less', project.testOut).replace('.less', '.css'))
|
||||
project.file(actualResult.parent).mkdirs()
|
||||
actualResult << actual
|
||||
def expected
|
||||
if (expectErrors) {
|
||||
assert exec.exitValue != 0
|
||||
expected = project.file(lessFile.path.replace('.less', '.txt')).text.trim().
|
||||
replace('{path}', lessFile.parent + '/').
|
||||
replace('{pathhref}', '').
|
||||
replace('{404status}', '')
|
||||
} else {
|
||||
assert exec.exitValue == 0
|
||||
expected = project.file(lessFile.path.replace('.less', '.css').replace('/less/', '/css/')).text.trim()
|
||||
if (!project.hasProperty('test') || lessFile.name.startsWith(project.test)) {
|
||||
def out = new java.io.ByteArrayOutputStream()
|
||||
def execOptions = {
|
||||
main = 'org.mozilla.javascript.tools.shell.Main'
|
||||
// main = 'org.mozilla.javascript.tools.debugger.Main'
|
||||
classpath = project.configurations.rhino
|
||||
args = [project.rhinoTestSrc, lessFile] + options
|
||||
standardOutput = out
|
||||
ignoreExitValue = true
|
||||
}
|
||||
assert actual == expected
|
||||
testSuccesses++
|
||||
println ' ok'
|
||||
actualResult.delete()
|
||||
}
|
||||
catch (ex) {
|
||||
println ex
|
||||
println()
|
||||
testErrors++;
|
||||
}
|
||||
catch (AssertionError ae) {
|
||||
println ' failed'
|
||||
// println ae
|
||||
testFailures++
|
||||
try {
|
||||
def exec = project.javaexec(execOptions)
|
||||
def actual = out.toString().trim()
|
||||
def actualResult = project.file(lessFile.path.replace('test/less', project.testOut).replace('.less', '.css'))
|
||||
project.file(actualResult.parent).mkdirs()
|
||||
actualResult << actual
|
||||
def expected
|
||||
if (expectErrors) {
|
||||
assert exec.exitValue != 0
|
||||
expected = project.file(lessFile.path.replace('.less', '.txt')).text.trim().
|
||||
replace('{path}', lessFile.parent + '/').
|
||||
replace('{pathhref}', '').
|
||||
replace('{404status}', '')
|
||||
} else {
|
||||
assert exec.exitValue == 0
|
||||
expected = project.file(lessFile.path.replace('.less', '.css').replace('/less/', '/css/')).text.trim()
|
||||
}
|
||||
assert actual == expected
|
||||
testSuccesses++
|
||||
println stylize(' ok', 'green')
|
||||
actualResult.delete()
|
||||
}
|
||||
catch (ex) {
|
||||
println ex
|
||||
println()
|
||||
testErrors++;
|
||||
}
|
||||
catch (AssertionError ae) {
|
||||
println stylize(' failed', 'red')
|
||||
// println ae
|
||||
testFailures++
|
||||
}
|
||||
} else {
|
||||
println stylize(' skipped', 'yellow')
|
||||
}
|
||||
}
|
||||
println testSuccesses + " ok"
|
||||
println testFailures + " assertion failed"
|
||||
println testErrors + " errors"
|
||||
println stylize(testSuccesses + ' ok', 'green')
|
||||
println stylize(testFailures + ' assertion failed', testFailures == 0 ? 'green' : 'red')
|
||||
println stylize(testErrors + ' errors', testErrors == 0 ? 'green' : 'red')
|
||||
// assert testFailures + testErrors == 0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user