Unit testing VS单元测试的代码错误类型(Mocha&;Chai而不是Jasmine)

Unit testing VS单元测试的代码错误类型(Mocha&;Chai而不是Jasmine),unit-testing,visual-studio-code,jasmine,mocha.js,cypress,Unit Testing,Visual Studio Code,Jasmine,Mocha.js,Cypress,我有一个ionic项目,我想用Cypress进行e2e测试,用Jasmine进行单元测试。 在我将cypress包添加到package.json并开始编写第一个e2e测试之后,VS代码向我显示了用于单元测试的spec.ts文件中的一些错误。 问题是,VS代码假设我在使用Mocha和Chai进行测试 我可以毫无错误地运行测试 这是我的tsconfig.json文件: { "compileOnSave": false, "compilerOptions": { "baseUrl":

我有一个ionic项目,我想用Cypress进行e2e测试,用Jasmine进行单元测试。 在我将cypress包添加到package.json并开始编写第一个e2e测试之后,VS代码向我显示了用于单元测试的spec.ts文件中的一些错误。 问题是,VS代码假设我在使用Mocha和Chai进行测试

我可以毫无错误地运行测试

这是我的tsconfig.json文件:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "dec

    laration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "test.ts",
    "polyfills.ts",
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}
和我的tsconfig.spec.json文件:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "dec

    laration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "test.ts",
    "polyfills.ts",
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}
最后,我的依赖项来自package.json:

"dependencies": {
    "@angular/common": "~6.1.1",
    "@angular/core": "~6.1.1",
    "@angular/forms": "~6.1.1",
    "@angular/http": "~6.1.1",
    "@angular/platform-browser": "~6.1.1",
    "@angular/platform-browser-dynamic": "~6.1.1",
    "@angular/pwa": "^0.8.0-beta.2",
    "@angular/router": "~6.1.1",
    "@angular/service-worker": "~6.1.1",
    "@ionic-native/core": "5.0.0-beta.14",
    "@ionic-native/splash-screen": "5.0.0-beta.14",
    "@ionic-native/status-bar": "5.0.0-beta.14",
    "@ionic/angular": "^4.0.0-beta.0",
    "@ngxs/devtools-plugin": "^3.2.0",
    "@ngxs/router-plugin": "^3.2.0",
    "@ngxs/store": "^3.2.0",
    "child_process": "^1.0.2",
    "core-js": "^2.5.3",
    "karma-junit-reporter": "^1.2.0",
    "prompt": "^1.0.0",
    "rxjs": "6.2.2",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.7.2",
    "@angular-devkit/build-angular": "~0.7.2",
    "@angular-devkit/core": "~0.7.2",
    "@angular-devkit/schematics": "~0.7.2",
    "@angular/cli": "^6.2.0-beta.2",
    "@angular/compiler": "~6.1.1",
    "@angular/compiler-cli": "~6.1.1",
    "@angular/language-service": "~6.1.1",
    "@compodoc/compodoc": "^1.1.3",
    "@ionic/ng-toolkit": "^1.0.0",
    "@ionic/schematics-angular": "^1.0.0",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~10.5.2",
    "codelyzer": "~4.4.2",
    "cypress": "^3.1.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "start-server-and-test": "^1.7.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~2.7.2"
  }
如何解决这些测试框架的混乱

亲切问候,


默认情况下,David

VS接受
tsconfig.json
文件。因为您没有在其中指定
类型
字段,所以它从
@types
目录中获取所有类型。可能的解决方案是在嵌套文件夹中创建
tsconfig.json
,而不是
tsconfig.spec.json
文件,并在其中指定
types
字段。

我认为VS默认采用tsconfig.json文件。因为您没有指定“类型”,所以它从“@types”中获取所有类型。可能的解决方案是在嵌套文件夹中创建tsconfig.json而不是tsconfig.spec.json文件,并在其中指定“类型”字段。是!!这就是解决办法。我以为VS代码会识别tsconfig.spec.json,但它忽略了它。重命名后,VS代码在等级库文件中使用正确的类型。谢谢你的帮助。如果您创建了一个答案,我会将其标记为已解决。您重命名了什么
tsconfig.spec.json
?我将其重命名为tsconfig.json。它与所有cypress测试一起位于一个单独的文件夹中