typescript mocha describe 不是函数
typescript mocha describe is not a function
我遇到的问题是 mocha-typescript 不断抛出 describe
未定义的错误。
TypeError: mocha_typescript_1.describe is not a function
at DatabaseTest.WrongPath (test/database_test.ts:21:9)
at Context.<anonymous> (node_modules/mocha-typescript/index.ts:218:22)
我的tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true,
"lib": ["es6"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"typeRoots": [
"./node_modules/@types"
],
"types": [
"node", "mocha", "chai"
]
},
"include": [
"src/**/*.ts",
"test/**/*.ts"
],
"exclude": [
"node_modules"
]
}
我的package.json
{
//omitted
"main": "App.js",
"scripts": {
"pretest": "tsc",
"test": "nyc mocha --require ts-node/register test/**/*_test.ts ",
"watch": "mocha-typescript-watch",
"prepare": "tsc"
},
// ommitted
"dependencies": {
"@types/chai": "^4.0.6",
"@types/jsesc": "^0.4.29",
"@types/mocha": "^2.2.44",
"@types/node": "^8.0.53",
"@types/sqlite3": "^3.1.1",
"chai": "^4.1.2",
"express": "^4.16.2",
"express-longpoll": "0.0.4",
"jsesc": "^2.5.1",
"mocha": "^4.0.1",
"mocha-typescript": "^1.1.12",
"nyc": "^11.3.0",
"reflect-metadata": "^0.1.10",
"sequelize": "^4.26.0",
"sequelize-typescript": "^0.6.1",
"source-map-support": "^0.5.0",
"sqlite3": "^3.1.13",
"ts-events": "^3.2.0",
"ts-node": "^3.3.0",
"typescript": "^2.6.2",
"typings": "^2.1.1"
}
}
database_test.ts
:
//Unit testing script for Database.ts
/// <reference path="../node_modules/mocha-typescript/globals.d.ts" />
//// <reference path="../node_modules/@types/mocha/index.d.ts" />
import { suite, test, describe, slow, timeout } from "mocha-typescript"
import { assert } from "chai";
import 'mocha'
@suite(slow(1000), timeout(3000))
export class SampleTest {
@test testFunc(){
describe("Sample function", ()=>{
it("Should succeed without any problems", (done) => {
assert.isTrue(true);
done();
})
});
}
}
完整日志:
> project@1.0.0 pretest /home/user/folder/project
> tsc
> project@1.0.0 test /home/user/folder/project
> nyc mocha --require ts-node/register test/**/*.ts
SampleTest
1) testFunc
0 passing (13ms)
1 failing
1) SampleTest
testFunc:
TypeError: mocha_typescript_1.describe is not a function
at DatabaseTest.WrongPath (test/database_test.ts:21:9)
at Context.<anonymous> (node_modules/mocha-typescript/index.ts:218:22)
----------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files | Unknown | Unknown | Unknown | Unknown | |
----------|----------|----------|----------|----------|----------------|
npm ERR! Test failed. See above for more details.
如您所见,我尝试了多种操作,例如 tsconfig.json
、import mocha
中的设置 typeRoots
和 types
以及两个不同类型的定义文件。 None 其中有效,我纠结于所有可能的组合。
我一直在尝试获取 typescript-mocha 运行 有一段时间了,有时有效,有时无效。我没有明确的解释,但我当然想要一个。
原来是因为双重关键字声明而出现错误。
显然 import 'mocha'
足以声明 describe
关键字。
我只需要调整来自
的导入行
import { suite, test, describe, slow, timeout } from "mocha-typescript"
到
import { suite, test, slow, timeout } from "mocha-typescript"
我遇到的问题是 mocha-typescript 不断抛出 describe
未定义的错误。
TypeError: mocha_typescript_1.describe is not a function
at DatabaseTest.WrongPath (test/database_test.ts:21:9)
at Context.<anonymous> (node_modules/mocha-typescript/index.ts:218:22)
我的tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true,
"lib": ["es6"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"typeRoots": [
"./node_modules/@types"
],
"types": [
"node", "mocha", "chai"
]
},
"include": [
"src/**/*.ts",
"test/**/*.ts"
],
"exclude": [
"node_modules"
]
}
我的package.json
{
//omitted
"main": "App.js",
"scripts": {
"pretest": "tsc",
"test": "nyc mocha --require ts-node/register test/**/*_test.ts ",
"watch": "mocha-typescript-watch",
"prepare": "tsc"
},
// ommitted
"dependencies": {
"@types/chai": "^4.0.6",
"@types/jsesc": "^0.4.29",
"@types/mocha": "^2.2.44",
"@types/node": "^8.0.53",
"@types/sqlite3": "^3.1.1",
"chai": "^4.1.2",
"express": "^4.16.2",
"express-longpoll": "0.0.4",
"jsesc": "^2.5.1",
"mocha": "^4.0.1",
"mocha-typescript": "^1.1.12",
"nyc": "^11.3.0",
"reflect-metadata": "^0.1.10",
"sequelize": "^4.26.0",
"sequelize-typescript": "^0.6.1",
"source-map-support": "^0.5.0",
"sqlite3": "^3.1.13",
"ts-events": "^3.2.0",
"ts-node": "^3.3.0",
"typescript": "^2.6.2",
"typings": "^2.1.1"
}
}
database_test.ts
:
//Unit testing script for Database.ts
/// <reference path="../node_modules/mocha-typescript/globals.d.ts" />
//// <reference path="../node_modules/@types/mocha/index.d.ts" />
import { suite, test, describe, slow, timeout } from "mocha-typescript"
import { assert } from "chai";
import 'mocha'
@suite(slow(1000), timeout(3000))
export class SampleTest {
@test testFunc(){
describe("Sample function", ()=>{
it("Should succeed without any problems", (done) => {
assert.isTrue(true);
done();
})
});
}
}
完整日志:
> project@1.0.0 pretest /home/user/folder/project
> tsc
> project@1.0.0 test /home/user/folder/project
> nyc mocha --require ts-node/register test/**/*.ts
SampleTest
1) testFunc
0 passing (13ms)
1 failing
1) SampleTest
testFunc:
TypeError: mocha_typescript_1.describe is not a function
at DatabaseTest.WrongPath (test/database_test.ts:21:9)
at Context.<anonymous> (node_modules/mocha-typescript/index.ts:218:22)
----------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files | Unknown | Unknown | Unknown | Unknown | |
----------|----------|----------|----------|----------|----------------|
npm ERR! Test failed. See above for more details.
如您所见,我尝试了多种操作,例如 tsconfig.json
、import mocha
中的设置 typeRoots
和 types
以及两个不同类型的定义文件。 None 其中有效,我纠结于所有可能的组合。
我一直在尝试获取 typescript-mocha 运行 有一段时间了,有时有效,有时无效。我没有明确的解释,但我当然想要一个。
原来是因为双重关键字声明而出现错误。
显然 import 'mocha'
足以声明 describe
关键字。
我只需要调整来自
的导入行import { suite, test, describe, slow, timeout } from "mocha-typescript"
到
import { suite, test, slow, timeout } from "mocha-typescript"