错误 TS1127:在 Angular 7 中运行 Karma 测试时出现无效字符

2024-02-28

  • 我收到错误error TS1127: Invalid character在 Visual Studio Code 终端中,为 Angular 7 应用运行 Karma 测试时
  • 命令行版本 - 7.3.9
  • I have 一份 Karma 测试规范在应用程序中
  • (我删除了所有specAngular CLI 生成的文件,但保留了现有的 Jasmine 和 Karma npm 包)
  • Jasmine 是测试运行者
  • 这似乎不是无效字符或空格问题 - 这不起作用 -Angular 编译错误:src/app/login/login.component.ts(18,10):错误 TS1127:无效 > 字符 https://stackoverflow.com/questions/47584678/angular-compile-error-src-app-login-login-component-ts18-10-error-ts1127-in

我使用自动生成测试ngentest https://www.npmjs.com/package/ngentest

要使用 ngentest 生成测试,请在 Windows 上从 Visual Studio Code 终端执行此操作:

npm install ngentest -g # to run this command anywhere
ngentest app.component.ts > # write unit test to app.component.spec.ts

应用程序.组件.规格.ts

// tslint:disable
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Injectable, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { By } from '@angular/platform-browser';
// import { Observable } from 'rxjs/Observable';
// import 'rxjs/add/observable/of';
// import 'rxjs/add/observable/throw';

import {Component, Directive} from '@angular/core';
import {AppComponent} from './app.component';
import {DataService} from './services/data.service';
import {ToastrService} from 'ngx-toastr';
import {LocaleService} from './services/locale.service';
import {BsLocaleService} from 'ngx-bootstrap/datepicker';

@Injectable()
class MockDataService { }

@Injectable()
class MockLocaleService { }

describe('AppComponent', () => {
  let fixture;
  let component;

  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
      providers: [
        {provide: DataService, useClass: MockDataService},
        ToastrService,
        {provide: LocaleService, useClass: MockLocaleService},
        BsLocaleService,
      ],
      schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
    }).compileComponents();
    fixture = TestBed.createComponent(AppComponent);
    component = fixture.debugElement.componentInstance;
  });

  it('should create a component', async () => {
    expect(component).toBeTruthy();
  });

  it('should run #ngOnInit()', async () => {
    // const result = component.ngOnInit();
  });

  it('should run #ngOnDestroy()', async () => {
    // const result = component.ngOnDestroy();
  });

});

使用以下命令从 CLI 运行测试:

  • npm install
  • npm run build
  • ng test

app.component.spec.ts TS1127: Invalid character然后错误显示在控制台中

这出现在 Chrome 中运行的 Karma 测试报告查看器中:

Incomplete: No specs found, , randomized with seed 42068

我尝试跑步npm install –save-dev jasmine,其中添加了"jasmine": "^3.4.0"。我做了一个npm install,构建和ng test再次 - 同样的问题


The devDependencies in package.json现在:

  "devDependencies": {
    "@angular-devkit/build-angular": "^0.13.9",
    "@angular-devkit/core": "7.3.8",
    "@angular/cli": "^7.3.9",
    "@angular/compiler-cli": "^7.2.15",
    "@angular/language-service": "^7.2.15",
    "@fortawesome/pro-light-svg-icons": "^5.10.2",
    "@fortawesome/pro-regular-svg-icons": "^5.10.2",
    "@fortawesome/pro-solid-svg-icons": "^5.10.2",
    "@types/jasmine": "~3.3.12",
    "@types/jasminewd2": "^2.0.6",
    "@types/node": "^11.13.7",
    "acorn": "^6.1.1",
    "codelyzer": "~5.0.0",
    "concurrently": "^4.1.2",
    "jasmine": "^3.4.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-cli": "~2.0.0",
    "karma-coverage-istanbul-reporter": "^2.0.5",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "ncp": "^2.0.0",
    "ngx-i18nsupport": "^0.17.1",
    "protractor": "^5.4.2",
    "ts-node": "~8.1.0",
    "tslint": "^5.16.0",
    "typescript": "^3.2.4",
    "webpack-bundle-analyzer": "^3.3.2"
  }

UPDATE

我卸载了所有与茉莉花和业力相关的内容devDependencies并重新安装了它们,还做了一个npm install ngentest(它没有安装,但 CLI 生成的版本可以在没有安装的情况下工作)。然后我跑了一个npm install。然后我删除了 app.component.spec.ts 并做了npm run build。然后我做了:

ngentest app.component.ts > app.component.spec.ts
npm run build
ng test

同样的错误


我唯一一次使用 vscode 中的 gentest 时遇到了同样的问题。 简单的解决方法:直接从命令行使用 gentest。

问题和解决方案:在 notepad++ 中打开创建的 .spec 文件,并使用 vscode 为您选择的任何奇怪的内容进行隐蔽编码,然后保存为 UTF-8。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误 TS1127:在 Angular 7 中运行 Karma 测试时出现无效字符 的相关文章

  • 浮动标签和占位符重叠

    div class form group form default form spacing div
  • Angular 2 Observable 具有多个订阅者

    我有一个 Angular 2 服务 可以从 API 获取数据 该服务有 3 个订阅者 在组件中定义 每个订阅者都对数据执行其他操作 不同的图表 我注意到我正在向 API 发出三个 GET 请求 而我想要实现的是一个请求 并且订阅者将共享数据
  • Webpack 在 Angular 的 ng 服务中的作用

    我是 Angular 的新手 想知道当我们为应用程序提供服务时 Webpack 在幕后扮演什么角色 在最初的印象中 我开始知道 webpack 是一个构建和打包工具 它将所有必需的 JS 文件分组到单独的包中 然而 我无法找到 webpac
  • Angular 2 - 突出显示更新的表格单元格

    如何在表中刷新改变其值的单元格 tr td product productName td td product price td tr 在组件中我有产品的输入 Input products Array
  • 无法在 Angular 4 中使用自定义主题

    我正在尝试在我的角度项目中使用我的自定义主题 它没有按预期工作 我收到以下错误 node modules css loader sourceMap false importLoaders 1 node modules postcss loa
  • Angular4 - 滚动到锚点

    我正在尝试对同一页面上的锚元素进行简单的滚动 基本上 用户点击 尝试 按钮 它就会滚动到页面下方 ID 为 登录 的区域 现在 它正在与一个基本的id login a href login a 但它正在跳转到该部分 理想情况下 我希望它滚动
  • Angular *ngFor 循环遍历数组的数组

    我有一个数组 其中包含其他数组 如下所示 array element A element B YES NO 我想使用 ngFor 循环遍历 HTML 表中的这个对象数组 table thead tr th th th COLUMN 1 th
  • 避免在 Angular 2+ 中嵌套订阅?

    我有2个端点 1 个端点来获取当前用户的日志 1 个端点来获取该用户的授权 实际上我使用 this user subscribe e gt this grants get e subscribe x gt console log x 但这是
  • MatAutocomplete 值 X 显示

    我的自动完成显示具有以下定义的对象的值 export class Person id number name string cityName string 这是自动完成模板
  • Angular2:鼠标事件处理(相对于当前位置的移动)

    我的用户应该能够通过鼠标在画布中移动 或旋转 对象 当鼠标事件发生时 屏幕坐标用于计算与最后一个事件的增量 方向和长度 没什么特别的 mousedown 获取第一个坐标 mousemove 获取第n个坐标 计算deltaXY 按deltaX
  • 如何更改元素的 CSS 类并在单击时删除所有其他类

    我如何处理 AngularJS 2 中的一种情况 即单击一个元素需要更改其自己的样式 并且如果其他元素具有该样式 则需要将其删除 最好在一个函数中 如同Angular js 如何在单击时更改元素 css 类并删除所有其他元素 https s
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • 如何显示 GroupList 的 FormArray?

    我正在尝试制作一个交互式表单 在每一行上列出一个项目以及一个删除按钮 在我的示例中称为 verwijderen 这些项目是从数据库中检索的 并且每个项目都实例化为名为的自定义对象LaborPeriod 然后这些对象被转化为FormGroup
  • 角度 4 单击按钮功能未触发

    我正在尝试检查文本输入是否为空或不在角度 4 中 我没有为此使用表单 这只是一个输入字段 当我在下面的按钮中执行 addLocaton 函数时 需要进行检查 我的输入字段
  • 在 Angular 中获取当前路由路径名称的最简单方法是什么?

    我正在寻找一种获取当前路线的路径名称的好方法 这是我能找到的最简单的 this route snapshot firstChild url 0 path 有没有更好的办法 谢谢 谢谢大家的回答 这是我发现我必须做的 router event
  • 编辑角度材质的表格单元格填充

    当我使用开发人员工具检查该元素时 它显示零填充 但是当我查看它并将鼠标悬停在它上面时 它非常清楚地在单元格内具有填充 我不知道这是从哪里来的 并且设置td padding 0 important 什么也没做 感知到的填充是由以下原因引起的d
  • Angular Material 7 多重选择 - 设置选定值

    我正在尝试设置多选下拉列表的选定值 如下所示 循环根据条件选择多个复选框并进行设置 document getElementsByTagName mat pseudo checkbox index classList add mat pseu
  • 使用服务中的可观察量测试错误情况

    假设我有一个订阅服务功能的组件 export class Component ngOnInit this service doStuff subscribe data IData gt doThings data error Error g
  • *ngFor 的哪种方法更好:ng-container 还是管道切片?

    我想显示完整列表或仅显示其 3 个元素 有条件地 more true false 我可以用管道方法像这样 div class table div class row item id item name div div or ng 容器像这样
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table

随机推荐