Тест Мокко не пройден с использованием машинописи - PullRequest
1 голос
/ 17 апреля 2019

У меня есть проект, в котором я использую TS и Rollup. Мой код собирается и работает нормально, но когда я запускаю тесты через npm run test, они терпят неудачу с сообщением об ошибке SyntaxError: Unexpected token {.

Теперь я знаю, что проблема связана с синтаксисом ES6, потому что я использую import в своем тестовом файле, и кажется, что тест не переносится, но я не уверен, почему.

Моя соответствующая часть package.json:

 "main": "./dist/index.js",
  "module": "dist/index.es.js",
  "types": "./dist/index.d.ts",
  "scripts": {
    "build": "rollup -c",
    "watch": "rollup -cw",
    "prepublish": "rollup -c > index.js && BROWSER=true rollup -c > browser.js",
    "clean": "rm -rf dist/",
    "test": "mocha -r ts-node/register src/**/*.spec.ts",
    "testdebug": "mocha --inspect-brk --colors --recursive --require ts-node/register --watch-extensions ts \"**/*spec.ts\" --exclude \"node_modules/**\"",
    "lint": "tslint --project tsconfig.json -t codeFrame"
  },
  "devDependencies": {
    "@types/chai": "4.1.7",
    "@types/chai-as-promised": "7.1.0",
    "@types/long": "4.0.0",
    "@types/mocha": "5.2.6",
    "@types/node": "11.9.4",
    "@types/sinon": "7.0.6",
    "@types/sinon-chai": "3.2.2",
    "@types/supertest": "2.0.7",
    "@types/uuid": "3.4.4",
    "chai": "4.2.0",
    "chai-as-promised": "7.1.1",
    "husky": "1.3.1",
    "lint-staged": "8.1.4",
    "mocha": "5.2.0",
    "mocha-jenkins-reporter": "0.4.1",
    "prettier": "1.16.4",
    "rollup": "^1.10.0",
    "rollup-plugin-replace": "^2.2.0",
    "rollup-plugin-typescript2": "^0.20.1",
    "sinon": "7.2.3",
    "sinon-chai": "3.3.0",
    "supertest": "3.4.2",
    "ts-node": "8.0.2",
    "tslint": "5.12.1",
    "tslint-config-prettier": "1.18.0",
    "tslint-config-standard": "8.0.1",
    "tslint-microsoft-contrib": "6.0.0",
    "typescript": "^3.3.3"
  },

Мой файл test.spec.ts:

    import { loginUser } from './loginUser'

    console.log(loginUser)

Мой файл tsconfig: (Я уже пытался удалить spec-файлы из exclude, но, к сожалению, он такой же)

{
  "compilerOptions": {
    "target": "es5",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
    "module": "es6",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
    "declaration": true,                   /* Generates corresponding '.d.ts' file. */
    "outDir": "./dist",                        /* Redirect output structure to the directory. */
    "strict": true,                           /* Enable all strict type-checking options. */
    "skipLibCheck": true,
    "sourceMap": true,
    "moduleResolution": "node"
   },
   "exclude":[
     "node_modules",
     "dist",
     "./**/*.spec.ts",
     "./test/**/*.ts"
   ]
  }

Мой файл rollup.config

import typescript from 'rollup-plugin-typescript2'
import replace from 'rollup-plugin-replace'
import pkg from './package.json'
export default {
    input: 'src/index.ts',
    output: [
        {
            file: pkg.main,
            format: 'cjs',
        },
        {
            file: pkg.module,
            format: 'es',
        },
    ],
    external: [
        ...Object.keys(pkg.dependencies || {}),
        ...Object.keys(pkg.peerDependencies || {}),
    ],
    plugins: [
        typescript({
            typescript: require('typescript'),
        }),
        replace({
            'process.browser': !!process.env.BROWSER
        })
    ],
}

1 Ответ

0 голосов
/ 25 апреля 2019

Ваши настройки мокко выглядят правильно.

./node_modules/mocha/bin/mocha --inspect-brk=9230 -r ts-node/register tests/**/*spec.ts"

  • Вы установили npm i ts-node?
  • Считаете ли вы, что inspect-brk останавливает выполнениепока вы продолжите казнь в инспекторе?+ проверьте также порт
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...