From 42b83ef523e30511b8bb63d6814c6befaa88fe2a Mon Sep 17 00:00:00 2001 From: Luke Page Date: Sat, 11 Aug 2012 22:28:57 +0100 Subject: [PATCH] Make the test runner accept a argument to restrict the tests running (for debugging). Make the test runner pass the filename so it behaves like lessc - this fixed one of the tests. Also corrected the tests to run given the new format of the message --- test/less-test.js | 17 +++++++++++++---- test/less/errors/comment-in-selector.txt | 2 +- test/less/errors/import-no-semi.txt | 2 +- test/less/errors/import-subfolder1.txt | 4 ++-- test/less/errors/mixin-not-defined.txt | 2 +- test/less/errors/parse-error-curly-bracket.txt | 2 +- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/test/less-test.js b/test/less-test.js index a5da9e85..53ffd111 100644 --- a/test/less-test.js +++ b/test/less-test.js @@ -4,6 +4,8 @@ var path = require('path'), var less = require('../lib/less'); +var oneTestOnly = process.argv[2]; + less.tree.functions.add = function (a, b) { return new(less.tree.Dimension)(a.value + b.value); } @@ -18,9 +20,12 @@ sys.puts("\n" + stylize("LESS", 'underline') + "\n"); fs.readdirSync('test/less').forEach(function (file) { if (! /\.less/.test(file)) { return } + + var name = path.basename(file, '.less'); + + if (oneTestOnly && name !== oneTestOnly) { return; } toCSS('test/less/' + file, function (err, less) { - var name = path.basename(file, '.less'); fs.readFile(path.join('test/css', name) + '.css', 'utf-8', function (e, css) { sys.print("- " + name + ": ") @@ -46,12 +51,15 @@ fs.readdirSync('test/less').forEach(function (file) { fs.readdirSync('test/less/errors').forEach(function (file) { if (! /\.less/.test(file)) { return } + + var name = path.basename(file, '.less'); + + if (oneTestOnly && ("error/" + name) !== oneTestOnly) { return; } toCSS('test/less/errors/' + file, function (err, compiledLess) { - var name = path.basename(file, '.less'); - fs.readFile(path.join('test/less/errors', name) + '.txt', 'utf-8', function (e, expectedErr) { sys.print("- error/" + name + ": "); + expectedErr = expectedErr.replace("{path}", path.join(process.cwd(), "/test/less/errors/")); if (!err) { if (compiledLess) { sys.print(stylize("No Error", 'red')); @@ -87,7 +95,8 @@ function toCSS(path, callback) { new(less.Parser)({ paths: [require('path').dirname(path)], - optimization: 0 + optimization: 0, + filename: require('path').resolve(process.cwd(), path) }).parse(str, function (err, tree) { if (err) { callback(err); diff --git a/test/less/errors/comment-in-selector.txt b/test/less/errors/comment-in-selector.txt index 5f0321b2..571462f3 100644 --- a/test/less/errors/comment-in-selector.txt +++ b/test/less/errors/comment-in-selector.txt @@ -1,2 +1,2 @@ -ParseError: Syntax Error on line 1 +ParseError: Syntax Error on line 1 in {path}comment-in-selector.less:1:20 1 #gaga /* Comment */ span { color: red } diff --git a/test/less/errors/import-no-semi.txt b/test/less/errors/import-no-semi.txt index bdc336c8..3691a733 100644 --- a/test/less/errors/import-no-semi.txt +++ b/test/less/errors/import-no-semi.txt @@ -1,2 +1,2 @@ -ParseError: Syntax Error on line 1 +ParseError: Syntax Error on line 1 in C:\git\less.js\test\less\errors\import-no-semi.less:1:0 1 @import "this-statement-is-invalid.less" diff --git a/test/less/errors/import-subfolder1.txt b/test/less/errors/import-subfolder1.txt index b133f7e1..b47628bb 100644 --- a/test/less/errors/import-subfolder1.txt +++ b/test/less/errors/import-subfolder1.txt @@ -1,3 +1,3 @@ -NameError: .mixin-not-defined is undefined in test\less\errors\mixin-not-defined.less:1:102 +NameError: .mixin-not-defined is undefined in test\less\errors\mixin-not-defined.less:11:0 10 -11 .mixin-not-defined(); \ No newline at end of file +11 .mixin-not-defined(); diff --git a/test/less/errors/mixin-not-defined.txt b/test/less/errors/mixin-not-defined.txt index ef076db1..0d468976 100644 --- a/test/less/errors/mixin-not-defined.txt +++ b/test/less/errors/mixin-not-defined.txt @@ -1,3 +1,3 @@ -NameError: .mixin-not-defined is undefined +NameError: .mixin-not-defined is undefined in C:\git\less.js\test\less\errors\mixin-not-defined.less:11:0 10 11 .mixin-not-defined(); diff --git a/test/less/errors/parse-error-curly-bracket.txt b/test/less/errors/parse-error-curly-bracket.txt index 16c0d0c0..65b442da 100644 --- a/test/less/errors/parse-error-curly-bracket.txt +++ b/test/less/errors/parse-error-curly-bracket.txt @@ -1,2 +1,2 @@ -ParseError: Syntax Error on line 1 +ParseError: Syntax Error on line 1 in C:\git\less.js\test\less\errors\parse-error-curly-bracket.less:1:0 1 }}