mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-16 19:09:18 +08:00
added tester cli options
added optimist dependency sourced optimist definition changed cli options to use optimist expose verbose info printers as options added skipTests option added npm scripts (lazy) $ npm run test $ npm run dry $ npm run all $ npm run list $ npm run help bumped default tsc version to 0.9.7 tester disabled test filer tuned suite regexs tuned npm run commands added print helpers
This commit is contained in:
@@ -127,10 +127,12 @@ var DT;
|
||||
var Timer = (function () {
|
||||
function Timer() {
|
||||
this.time = 0;
|
||||
this.asString = '<not-started>';
|
||||
}
|
||||
Timer.prototype.start = function () {
|
||||
this.time = 0;
|
||||
this.startTime = this.now();
|
||||
this.asString = '<started>';
|
||||
};
|
||||
|
||||
Timer.prototype.now = function () {
|
||||
@@ -566,6 +568,10 @@ var DT;
|
||||
this.out(' \33[36m\33[1m' + file + '\33[0m\n');
|
||||
};
|
||||
|
||||
Print.prototype.printWarnCode = function (str) {
|
||||
this.out(' \33[31m\33[1m<' + str.toLowerCase().replace(/ +/g, '-') + '>\33[0m\n');
|
||||
};
|
||||
|
||||
Print.prototype.printLine = function (file) {
|
||||
this.out(file + '\n');
|
||||
};
|
||||
@@ -634,6 +640,12 @@ var DT;
|
||||
_this.printLine(file.filePathWithName);
|
||||
});
|
||||
};
|
||||
|
||||
Print.prototype.printTestAll = function () {
|
||||
this.printDiv();
|
||||
this.printSubHeader('Ignoring changes, testing all files');
|
||||
};
|
||||
|
||||
Print.prototype.printFiles = function (files) {
|
||||
var _this = this;
|
||||
this.printDiv();
|
||||
@@ -838,7 +850,7 @@ var DT;
|
||||
|
||||
var Promise = require('bluebird');
|
||||
|
||||
var endDts = /.ts$/i;
|
||||
var endDts = /\w\.ts$/i;
|
||||
|
||||
/////////////////////////////////
|
||||
// .d.ts syntax inspection
|
||||
@@ -865,7 +877,7 @@ var DT;
|
||||
|
||||
var Promise = require('bluebird');
|
||||
|
||||
var endTestDts = /-tests?.ts$/i;
|
||||
var endTestDts = /\w-tests?\.ts$/i;
|
||||
|
||||
/////////////////////////////////
|
||||
// Compile with *-tests.ts
|
||||
@@ -977,7 +989,7 @@ var DT;
|
||||
|
||||
var tsExp = /\.ts$/;
|
||||
|
||||
DT.DEFAULT_TSC_VERSION = '0.9.1.1';
|
||||
DT.DEFAULT_TSC_VERSION = '0.9.7';
|
||||
|
||||
/////////////////////////////////
|
||||
// Single test
|
||||
@@ -1119,7 +1131,9 @@ var DT;
|
||||
_this.print.printRelChanges(_this.index.changed);
|
||||
return _this.index.parseFiles();
|
||||
}).then(function () {
|
||||
// this.print.printRefMap(this.index, this.index.refMap);
|
||||
if (_this.options.printRefMap) {
|
||||
_this.print.printRefMap(_this.index, _this.index.refMap);
|
||||
}
|
||||
if (Lazy(_this.index.missing).some(function (arr) {
|
||||
return arr.length > 0;
|
||||
})) {
|
||||
@@ -1129,12 +1143,17 @@ var DT;
|
||||
// bail
|
||||
return Promise.cast(false);
|
||||
}
|
||||
|
||||
// this.print.printFiles(this.files);
|
||||
if (_this.options.printFiles) {
|
||||
_this.print.printFiles(_this.index.files);
|
||||
}
|
||||
return _this.index.collectTargets().then(function (files) {
|
||||
_this.print.printQueue(files);
|
||||
|
||||
return _this.runTests(files);
|
||||
if (_this.options.testChanges) {
|
||||
_this.print.printQueue(files);
|
||||
return _this.runTests(files);
|
||||
} else {
|
||||
_this.print.printTestAll();
|
||||
return _this.runTests(_this.index.files);
|
||||
}
|
||||
}).then(function () {
|
||||
return !_this.suites.some(function (suite) {
|
||||
return suite.ngTests.length !== 0;
|
||||
@@ -1173,6 +1192,11 @@ var DT;
|
||||
|
||||
_this.print.printSuiteHeader(suite.testSuiteName);
|
||||
|
||||
if (_this.options.skipTests) {
|
||||
_this.print.printWarnCode('skipped test');
|
||||
return Promise.cast(count++);
|
||||
}
|
||||
|
||||
return suite.start(files, function (testResult) {
|
||||
_this.print.printTestComplete(testResult);
|
||||
}).then(function (suite) {
|
||||
@@ -1249,23 +1273,39 @@ var DT;
|
||||
})();
|
||||
DT.TestRunner = TestRunner;
|
||||
|
||||
var optimist = require('optimist')(process.argv);
|
||||
optimist.default('try-without-tscparams', false);
|
||||
optimist.default('single-thread', false);
|
||||
optimist.default('tsc-version', DT.DEFAULT_TSC_VERSION);
|
||||
|
||||
optimist.default('test-changes', false);
|
||||
optimist.default('skip-tests', false);
|
||||
optimist.default('print-files', false);
|
||||
optimist.default('print-refmap', false);
|
||||
|
||||
optimist.boolean('help');
|
||||
optimist.describe('help', 'print help');
|
||||
optimist.alias('h', 'help');
|
||||
|
||||
var argv = optimist.argv;
|
||||
|
||||
var dtPath = path.resolve(path.dirname((module).filename), '..', '..');
|
||||
var findNotRequiredTscparams = process.argv.some(function (arg) {
|
||||
return arg == '--try-without-tscparams';
|
||||
});
|
||||
var tscVersionIndex = process.argv.indexOf('--tsc-version');
|
||||
var tscVersion = DT.DEFAULT_TSC_VERSION;
|
||||
var cpuCores = os.cpus().length;
|
||||
|
||||
if (tscVersionIndex > -1) {
|
||||
tscVersion = process.argv[tscVersionIndex + 1];
|
||||
if (argv.help) {
|
||||
optimist.showHelp();
|
||||
process.exit(0);
|
||||
}
|
||||
var runner = new TestRunner(dtPath, {
|
||||
concurrent: Math.max(cpuCores, 2),
|
||||
tscVersion: tscVersion,
|
||||
findNotRequiredTscparams: findNotRequiredTscparams
|
||||
});
|
||||
runner.run().then(function (success) {
|
||||
|
||||
new TestRunner(dtPath, {
|
||||
concurrent: argv['single-thread'] ? 1 : Math.max(cpuCores, 2),
|
||||
tscVersion: argv['tsc-version'],
|
||||
testChanges: argv['test-changes'],
|
||||
skipTests: argv['skip-tests'],
|
||||
printFiles: argv['print-files'],
|
||||
printRefMap: argv['print-refmap'],
|
||||
findNotRequiredTscparams: argv['try-without-tscparam']
|
||||
}).run().then(function (success) {
|
||||
if (!success) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ module DT {
|
||||
|
||||
var tsExp = /\.ts$/;
|
||||
|
||||
export var DEFAULT_TSC_VERSION = '0.9.1.1';
|
||||
export var DEFAULT_TSC_VERSION = '0.9.7';
|
||||
|
||||
/////////////////////////////////
|
||||
// Single test
|
||||
@@ -123,6 +123,10 @@ module DT {
|
||||
export interface ITestRunnerOptions {
|
||||
tscVersion:string;
|
||||
concurrent?:number;
|
||||
testChanges?:boolean;
|
||||
skipTests?:boolean;
|
||||
printFiles?:boolean;
|
||||
printRefMap?:boolean;
|
||||
findNotRequiredTscparams?:boolean;
|
||||
}
|
||||
|
||||
@@ -175,19 +179,27 @@ module DT {
|
||||
this.print.printRelChanges(this.index.changed);
|
||||
return this.index.parseFiles();
|
||||
}).then(() => {
|
||||
// this.print.printRefMap(this.index, this.index.refMap);
|
||||
|
||||
if (this.options.printRefMap) {
|
||||
this.print.printRefMap(this.index, this.index.refMap);
|
||||
}
|
||||
if (Lazy(this.index.missing).some((arr: any[]) => arr.length > 0)) {
|
||||
this.print.printMissing(this.index, this.index.missing);
|
||||
this.print.printBoldDiv();
|
||||
// bail
|
||||
return Promise.cast(false);
|
||||
}
|
||||
// this.print.printFiles(this.files);
|
||||
if (this.options.printFiles) {
|
||||
this.print.printFiles(this.index.files);
|
||||
}
|
||||
return this.index.collectTargets().then((files) => {
|
||||
this.print.printQueue(files);
|
||||
|
||||
return this.runTests(files);
|
||||
if (this.options.testChanges) {
|
||||
this.print.printQueue(files);
|
||||
return this.runTests(files);
|
||||
}
|
||||
else {
|
||||
this.print.printTestAll();
|
||||
return this.runTests(this.index.files)
|
||||
}
|
||||
}).then(() => {
|
||||
return !this.suites.some((suite) => {
|
||||
return suite.ngTests.length !== 0
|
||||
@@ -225,6 +237,11 @@ module DT {
|
||||
|
||||
this.print.printSuiteHeader(suite.testSuiteName);
|
||||
|
||||
if (this.options.skipTests) {
|
||||
this.print.printWarnCode('skipped test');
|
||||
return Promise.cast(count++);
|
||||
}
|
||||
|
||||
return suite.start(files, (testResult) => {
|
||||
this.print.printTestComplete(testResult);
|
||||
}).then((suite) => {
|
||||
@@ -298,21 +315,39 @@ module DT {
|
||||
}
|
||||
}
|
||||
|
||||
var optimist: Optimist = require('optimist')(process.argv);
|
||||
optimist.default('try-without-tscparams', false);
|
||||
optimist.default('single-thread', false);
|
||||
optimist.default('tsc-version', DEFAULT_TSC_VERSION);
|
||||
|
||||
optimist.default('test-changes', false);
|
||||
optimist.default('skip-tests', false);
|
||||
optimist.default('print-files', false);
|
||||
optimist.default('print-refmap', false);
|
||||
|
||||
optimist.boolean('help');
|
||||
optimist.describe('help', 'print help');
|
||||
optimist.alias('h', 'help');
|
||||
|
||||
var argv: any = optimist.argv;
|
||||
|
||||
var dtPath = path.resolve(path.dirname((module).filename), '..', '..');
|
||||
var findNotRequiredTscparams = process.argv.some(arg => arg == '--try-without-tscparams');
|
||||
var tscVersionIndex = process.argv.indexOf('--tsc-version');
|
||||
var tscVersion = DEFAULT_TSC_VERSION;
|
||||
var cpuCores = os.cpus().length;
|
||||
|
||||
if (tscVersionIndex > -1) {
|
||||
tscVersion = process.argv[tscVersionIndex + 1];
|
||||
if (argv.help) {
|
||||
optimist.showHelp();
|
||||
process.exit(0);
|
||||
}
|
||||
var runner = new TestRunner(dtPath, {
|
||||
concurrent: Math.max(cpuCores, 2),
|
||||
tscVersion: tscVersion,
|
||||
findNotRequiredTscparams: findNotRequiredTscparams
|
||||
});
|
||||
runner.run().then((success) => {
|
||||
|
||||
new TestRunner(dtPath, {
|
||||
concurrent: argv['single-thread'] ? 1 : Math.max(cpuCores, 2),
|
||||
tscVersion: argv['tsc-version'],
|
||||
testChanges: argv['test-changes'],
|
||||
skipTests: argv['skip-tests'],
|
||||
printFiles: argv['print-files'],
|
||||
printRefMap: argv['print-refmap'],
|
||||
findNotRequiredTscparams: argv['try-without-tscparam']
|
||||
}).run().then((success) => {
|
||||
if (!success) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -132,6 +132,10 @@ module DT {
|
||||
this.out(' \33[36m\33[1m' + file + '\33[0m\n');
|
||||
}
|
||||
|
||||
public printWarnCode(str: string) {
|
||||
this.out(' \33[31m\33[1m<' + str.toLowerCase().replace(/ +/g, '-') + '>\33[0m\n');
|
||||
}
|
||||
|
||||
public printLine(file: string) {
|
||||
this.out(file + '\n');
|
||||
}
|
||||
@@ -197,8 +201,13 @@ module DT {
|
||||
files.forEach((file) => {
|
||||
this.printLine(file.filePathWithName);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public printTestAll(): void {
|
||||
this.printDiv();
|
||||
this.printSubHeader('Ignoring changes, testing all files');
|
||||
}
|
||||
|
||||
public printFiles(files: File[]): void {
|
||||
this.printDiv();
|
||||
this.printSubHeader('Files');
|
||||
|
||||
@@ -50,7 +50,7 @@ module DT {
|
||||
return Promise.all(targetFiles.map((targetFile) => {
|
||||
return this.runTest(targetFile).then((result) => {
|
||||
testCallback(result);
|
||||
})
|
||||
});
|
||||
}));
|
||||
}).then(() => {
|
||||
this.timer.end();
|
||||
|
||||
@@ -6,7 +6,7 @@ module DT {
|
||||
|
||||
var Promise: typeof Promise = require('bluebird');
|
||||
|
||||
var endDts = /.ts$/i;
|
||||
var endDts = /\w\.ts$/i;
|
||||
|
||||
/////////////////////////////////
|
||||
// .d.ts syntax inspection
|
||||
|
||||
@@ -6,7 +6,7 @@ module DT {
|
||||
|
||||
var Promise: typeof Promise = require('bluebird');
|
||||
|
||||
var endTestDts = /-tests?.ts$/i;
|
||||
var endTestDts = /\w-tests?\.ts$/i;
|
||||
|
||||
/////////////////////////////////
|
||||
// Compile with *-tests.ts
|
||||
|
||||
@@ -11,11 +11,12 @@ module DT {
|
||||
export class Timer {
|
||||
startTime: number;
|
||||
time = 0;
|
||||
asString: string;
|
||||
asString: string = '<not-started>'
|
||||
|
||||
public start() {
|
||||
this.time = 0;
|
||||
this.startTime = this.now();
|
||||
this.asString = '<started>';
|
||||
}
|
||||
|
||||
public now(): number {
|
||||
|
||||
48
_infrastructure/tests/typings/optimist/optimist.d.ts
vendored
Normal file
48
_infrastructure/tests/typings/optimist/optimist.d.ts
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
// https://github.com/substack/node-optimist
|
||||
// sourced from https://github.com/soywiz/typescript-node-definitions/blob/master/optimist.d.ts
|
||||
// rehacked by @Bartvds
|
||||
|
||||
declare module Optimist {
|
||||
export interface Argv {
|
||||
_: string[];
|
||||
}
|
||||
export interface Optimist {
|
||||
default(name: string, value: any): Optimist;
|
||||
default(args: any): Optimist;
|
||||
|
||||
boolean(name: string): Optimist;
|
||||
boolean(names: string[]): Optimist;
|
||||
|
||||
string(name: string): Optimist;
|
||||
string(names: string[]): Optimist;
|
||||
|
||||
wrap(columns): Optimist;
|
||||
|
||||
help(): Optimist;
|
||||
showHelp(fn?: Function): Optimist;
|
||||
|
||||
usage(message: string): Optimist;
|
||||
|
||||
demand(key: string): Optimist;
|
||||
demand(key: number): Optimist;
|
||||
demand(key: string[]): Optimist;
|
||||
|
||||
alias(key: string, alias: string): Optimist;
|
||||
|
||||
describe(key: string, desc: string): Optimist;
|
||||
|
||||
options(key: string, opt: any): Optimist;
|
||||
|
||||
check(fn: Function);
|
||||
|
||||
parse(args: string[]): Optimist;
|
||||
|
||||
argv: Argv;
|
||||
}
|
||||
}
|
||||
interface Optimist extends Optimist.Optimist {
|
||||
(args: string[]): Optimist.Optimist;
|
||||
}
|
||||
declare module 'optimist' {
|
||||
export = Optimist;
|
||||
}
|
||||
1
_infrastructure/tests/typings/tsd.d.ts
vendored
1
_infrastructure/tests/typings/tsd.d.ts
vendored
@@ -1,3 +1,4 @@
|
||||
/// <reference path="node/node.d.ts" />
|
||||
/// <reference path="bluebird/bluebird.d.ts" />
|
||||
/// <reference path="lazy.js/lazy.js.d.ts" />
|
||||
/// <reference path="optimist/optimist.d.ts" />
|
||||
|
||||
30
package.json
30
package.json
@@ -1,15 +1,37 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "DefinitelyTyped",
|
||||
"version": "0.0.0",
|
||||
"version": "0.0.1",
|
||||
"homepage": "https://github.com/borisyankov/DefinitelyTyped",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/borisyankov/DefinitelyTyped.git"
|
||||
},
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "https://github.com/borisyankov/DefinitelyTyped/blob/master/LICENSE"
|
||||
}
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/borisyankov/DefinitelyTyped/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node ./_infrastructure/tests/runner.js --tsc-version 0.9.7"
|
||||
"test": "node ./_infrastructure/tests/runner.js --tsc-version 0.9.7 --test-changes",
|
||||
"all": "node ./_infrastructure/tests/runner.js --tsc-version 0.9.7",
|
||||
"dry": "node ./_infrastructure/tests/runner.js --tsc-version 0.9.7 --skip-tests --test-changes",
|
||||
"list": "node ./_infrastructure/tests/runner.js --tsc-version 0.9.7 --skip-tests --print-files --print-refmap",
|
||||
"help": "node ./_infrastructure/tests/runner.js -h"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map-support": "~0.2.5",
|
||||
"git-wrapper": "~0.1.1",
|
||||
"glob": "~3.2.9",
|
||||
"source-map-support": "~0.2.5",
|
||||
"bluebird": "~1.0.7",
|
||||
"lazy.js": "~0.3.2"
|
||||
"lazy.js": "~0.3.2",
|
||||
"optimist": "~0.6.1"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user