typescript mocha describe不是一个函数

时间:2017-12-08 14:40:23

标签: typescript mocha describe

我遇到的问题是mocha-typescript不断抛出ChangeListener未定义的错误。

describe

我的tsconfig.json

    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)

我的package.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"
      ]
    }

{ //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. typeRoots以及两种不同类型的定义文件中尝试了多项内容,例如设置typestsconfig.json。他们都没有工作,我在所有可能的组合中纠结。

我一直在努力让打字稿 - 摩卡运行一段时间,有时它会运作,有时它不会。我没有明确的解释,但我当然喜欢一个。

1 个答案:

答案 0 :(得分:2)

由于双关键字声明,导致错误。 显然,import 'mocha'足以声明describe关键字。

我只需要从

调整导入行
import { suite, test, describe, slow, timeout  } from "mocha-typescript"

import { suite, test, slow, timeout  } from "mocha-typescript"