1
votes

Pourquoi ai-je une "erreur TS1005: ';' attendu." erreur lors de l'exécution d'un simple test Jasmine?

J'utilise Angular 7. J'ai écrit une vraie classe de test simple, src / app / pastebin.ts,

localhost:Pastebin davea$ ng test
 10% building modules 1/1 modules 0 active07 09 2019 12:27:20.412:WARN [karma]: No captured browser, open http://localhost:9876/
07 09 2019 12:27:20.429:INFO [karma-server]: Karma v4.3.0 server started at http://0.0.0.0:9876/
07 09 2019 12:27:20.429:INFO [launcher]: Launching browsers Chrome, ChromeNoSandboxHeadless with concurrency unlimited
07 09 2019 12:27:20.433:INFO [launcher]: Starting browser Chrome
07 09 2019 12:27:20.441:INFO [launcher]: Starting browser Chrome
07 09 2019 12:27:23.398:WARN [karma]: No captured browser, open http://localhost:9876/  
07 09 2019 12:27:23.600:INFO [HeadlessChrome 76.0.3809 (Mac OS X 10.13.6)]: Connected on socket BQzsVF64PPIY9jUsAAAA with id 32854347
07 09 2019 12:27:23.624:INFO [Chrome 76.0.3809 (Mac OS X 10.13.6)]: Connected on socket edznAyypyhtvngwrAAAB with id 87775700
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6) ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:24:9
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:58:3
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0 secs / 0.144 secs)
Chrome 76.0.3809 (Mac OS X 10.13.6): Executed 2 of 4 SUCCESS (0 secs / 0.117 secs)
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6) ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function
Chrome 76.0.3809 (Mac OS X 10.13.6) ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:24:9
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:58:3
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0.146 secs / 0.144 secs)
Chrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0 secs / 0.142 secs)
Chrome 76.0.3809 (Mac OS X 10.13.6) ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0.146 secs / 0.144 secs)
Chrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0.157 secs / 0.142 secs)

puis une vraie spécification Jasmine simple, src / app / pastebin .spec.ts, pour le tester,

localhost:Pastebin davea$ cat package.json 
{
  "name": "pastebin",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^5.2.0",
    "@angular/common": "^5.2.0",
    "@angular/compiler": "^5.2.0",
    "@angular/core": "^5.2.0",
    "@angular/forms": "^5.2.0",
    "@angular/http": "^5.2.0",
    "@angular/platform-browser": "^5.2.0",
    "@angular/platform-browser-dynamic": "^5.2.0",
    "@angular/router": "^5.2.0",
    "core-js": "^2.4.1",
    "rxjs": "^5.5.6",
    "zone.js": "^0.8.19"
  },
  "devDependencies": {
    "@angular/cli": "~1.7.4",
    "@angular/compiler-cli": "^5.2.0",
    "@angular/language-service": "^5.2.0",
    "@types/jasmine": "^2.8.8",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "^4.0.1",
    "jasmine-core": "^2.99.1",
    "jasmine-spec-reporter": "^3.2.0",
    "karma": "^4.3.0",
    "karma-chrome-launcher": "^3.1.0",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~4.1.0",
    "tslint": "~5.9.1",
    "typescript": "^2.7.2"
  }
}

mais quand je vais exécuter mes tests, j'obtiens des erreurs qui ressemblent à tout ce que j'ai fait .. .

davea$ ng test
 10% building modules 1/1 modules 0 active02 09 2019 10:20:52.750:WARN [karma]: No captured browser, open http://localhost:9876/
02 09 2019 10:20:52.776:INFO [karma-server]: Karma v4.3.0 server started at http://0.0.0.0:9876/
02 09 2019 10:20:52.776:INFO [launcher]: Launching browsers Chrome, ChromeNoSandboxHeadless with concurrency unlimited
02 09 2019 10:20:52.780:INFO [launcher]: Starting browser Chrome
02 09 2019 10:20:52.787:INFO [launcher]: Starting browser Chrome
02 09 2019 10:20:56.030:WARN [karma]: No captured browser, open http://localhost:9876/  
02 09 2019 10:20:56.216:INFO [HeadlessChrome 76.0.3809 (Mac OS X 10.13.6)]: Connected on socket lcRdfhRmFhHi04mTAAAA with id 64655559
02 09 2019 10:20:56.232:INFO [Chrome 76.0.3809 (Mac OS X 10.13.6)]: Connected on socket IL97l6a-00J6s9H9AAAB with id 6205557
Browser {
  id: '6205557',
  fullName: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) ' +
    'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 ' +
    'Safari/537.36',
  name: 'Chrome 76.0.3809 (Mac OS X 10.13.6)',
  lastResult: [BrowserResult],
  disconnectsCount: 0,
  activeSockets: [Array],
  noActivityTimeout: 30000,
  collection: [BrowserCollection],
  emitter: [Server],
  socket: [Socket],
  timer: [Object],
  disconnectDelay: 2000,
  log: [Logger],
  noActivityTimeoutId: Timeout {
    _idleTimeout: 30000,
    _idlePrev: [Timeout],
    _idleNext: [Timeout],
    _idleStart: 10322,
    _onTimeout: [Function],
    _timerArgs: undefined,
    _repeat: null,
    _destroyed: false,
    [Symbol(refed)]: true,
    [Symbol(asyncId)]: 19087,
    [Symbol(triggerId)]: 19085
  },
  pendingDisconnect: null,
  state: 'EXECUTING'
} ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:24:9
      at node_modules/karma-jasmine-html-reporter/src/lib/adapter.js:58:3
Chrome 76.0.3809 (Mac OS X 10.13.6): Executed 4 of 4 ERROR (0 secs / 0.154 secs)
HeadlessChrome 76.0.3809 (Mac OS X 10.13.6): Executed 3 of 4 SUCCESS (0 secs / 0.132 secs)
Browser {
  id: '6205557',
  fullName: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) ' +
    'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 ' +
    'Safari/537.36',
  name: 'Chrome 76.0.3809 (Mac OS X 10.13.6)',
  lastResult: [BrowserResult],
  disconnectsCount: 0,
  activeSockets: [Array],
  noActivityTimeout: 30000,
  collection: [BrowserCollection],
  emitter: [Server],
  socket: [Socket],
  timer: [Object],
  disconnectDelay: 2000,
  log: [Logger],
  noActivityTimeoutId: Timeout {
    _idleTimeout: 30000,
    _idlePrev: [Timeout],
    _idleNext: [Timeout],
    _idleStart: 10322,
    _onTimeout: [Function],
    _timerArgs: undefined,
    _repeat: null,
    _destroyed: false,
    [Symbol(refed)]: true,
    [Symbol(asyncId)]: 19087,
    [Symbol(triggerId)]: 19085
  },
  pendingDisconnect: null,
  state: 'EXECUTING'
} ERROR
  An error was thrown in afterAll
  TypeError: env.catchExceptions is not a function

Quelqu'un sait-il comment je peux aborder ce problème?

Modifier: En réponse à la réponse donnée, voici la nouvelle sortie ...

localhost:Pastebin davea$ ng test
 10% building modules 1/1 modules 0 active01 09 2019 11:34:18.591:WARN [karma]: No captured browser, open http://localhost:9876/
01 09 2019 11:34:18.616:INFO [karma-server]: Karma v4.3.0 server started at http://0.0.0.0:9876/
01 09 2019 11:34:18.617:INFO [launcher]: Launching browsers Chrome, ChromeNoSandboxHeadless with concurrency unlimited
01 09 2019 11:34:18.622:INFO [launcher]: Starting browser Chrome
01 09 2019 11:34:18.797:INFO [launcher]: Starting browser Chrome
[./src/test.ts] ./src/test.ts 0 bytes {main} [built]                               
   [0] multi ./src/polyfills.ts 28 bytes {polyfills} [built]
[./src/polyfills.ts] ./src/polyfills.ts 0 bytes {polyfills} [built]

ERROR in node_modules/@types/jasmine/index.d.ts(191,11): error TS1005: ';' expected.
node_modules/@types/jasmine/index.d.ts(192,36): error TS1005: '(' expected.
node_modules/@types/jasmine/index.d.ts(192,50): error TS1005: ']' expected.
node_modules/@types/jasmine/index.d.ts(192,58): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(192,59): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(192,67): error TS1005: ')' expected.
node_modules/@types/jasmine/index.d.ts(193,37): error TS1005: '(' expected.
node_modules/@types/jasmine/index.d.ts(193,52): error TS1005: ']' expected.
node_modules/@types/jasmine/index.d.ts(193,53): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(193,54): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(193,55): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(193,69): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(193,73): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(193,98): error TS1005: '{' expected.
node_modules/@types/jasmine/index.d.ts(193,107): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(193,112): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(193,117): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(193,118): error TS1109: Expression expected.
node_modules/@types/jasmine/index.d.ts(193,120): error TS1005: ')' expected.
node_modules/@types/jasmine/index.d.ts(748,30): error TS1005: ';' expected.
node_modules/@types/jasmine/index.d.ts(854,1): error TS1128: Declaration or statement expected.

Edit 2: Après avoir appliqué la suggestion de la réponse, j'ai eu la nouvelle erreur

localhost:Pastebin davea$ ng test
 10% building modules 1/1 modules 0 active30 08 2019 15:53:13.954:WARN [karma]: No captured browser, open http://localhost:9876/
30 08 2019 15:53:13.960:INFO [karma]: Karma v2.0.5 server started at http://0.0.0.0:9876/
30 08 2019 15:53:13.960:INFO [launcher]: Launching browsers Chrome, ChromeNoSandboxHeadless with unlimited concurrency
30 08 2019 15:53:13.964:INFO [launcher]: Starting browser Chrome
30 08 2019 15:53:13.974:INFO [launcher]: Starting browser Chrome
[./src/test.ts] ./src/test.ts 0 bytes {main} [built]                               
   [0] multi ./src/polyfills.ts 28 bytes {polyfills} [built]
[./src/polyfills.ts] ./src/polyfills.ts 0 bytes {polyfills} [built]

ERROR in node_modules/@types/jasmine/index.d.ts(142,47): error TS1005: ';' expected.
node_modules/@types/jasmine/index.d.ts(142,90): error TS1005: '(' expected.
node_modules/@types/jasmine/index.d.ts(142,104): error TS1005: ']' expected.
node_modules/@types/jasmine/index.d.ts(142,112): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(142,113): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(142,121): error TS1005: ')' expected.
node_modules/@types/jasmine/index.d.ts(142,147): error TS1005: '(' expected.
node_modules/@types/jasmine/index.d.ts(142,162): error TS1005: ']' expected.
node_modules/@types/jasmine/index.d.ts(142,163): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(142,164): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(142,165): error TS1136: Property assignment expected.
node_modules/@types/jasmine/index.d.ts(142,179): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(142,183): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(142,208): error TS1005: '{' expected.
node_modules/@types/jasmine/index.d.ts(142,217): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(142,222): error TS1005: ',' expected.
node_modules/@types/jasmine/index.d.ts(142,227): error TS1005: ':' expected.
node_modules/@types/jasmine/index.d.ts(142,228): error TS1109: Expression expected.
node_modules/@types/jasmine/index.d.ts(142,230): error TS1005: ')' expected.
node_modules/@types/jasmine/index.d.ts(635,30): error TS1005: ';' expected.
node_modules/@types/jasmine/index.d.ts(720,1): error TS1128: Declaration or statement expected.

Edit 3 Voici le package.json ...

/* pastebin.spec.ts */

//import the Pastebin class
import { Pastebin } from './pastebin';

describe('Pastebin', () => {
    it('should create an instance of Pastebin',() => {
        expect(new Pastebin()).toBeTruthy();
    });

})

et voici l'erreur que j'obtiens lors de l'exécution des tests ...

export class Pastebin {
    id: number;
    title: string;
    language: string;
    paste: string;

    constructor(values: Object = {}) {
        Object.assign(this, values);
  }
}

export const Languages = ["Ruby","Java", "JavaScript", "C", "Cpp"];


6 commentaires

Sans rapport avec votre question, mais vous devriez lire typescriptlang.org/docs/handbook/declaration-files/...


J'ai essayé d'exécuter votre code sur mon projet angulaire et cela fonctionnait bien. Le problème semble être autre chose. Pouvez-vous faire xdescribe puis fdescribe et nous faire part de toute différence de sortie


Vous avez peut-être une installation défectueuse de vos modules de nœuds. Pouvez-vous essayer de les réinstaller?


@ShashankVivek, j'ai essayé d'exécuter "xdescribe" mais j'ai obtenu l'erreur "-bash: xdescribe: command not found".


@lealceldeiro, Les commandes de réinstallation que vous suggérez sont-elles différentes de celles données dans la réponse? Ce sont ceux que je viens de lancer et que l'erreur a été publiée dans l'édition de la question.


@Dave Pouvez-vous nous montrer votre package.json ?


3 Réponses :


2
votes

Il semble que vous exécutiez Karma v2.0.5 qui est une version vraiment obsolète de Karma.

30 08 2019 15: 53: 13.960: INFO [karma]: Le serveur Karma v2.0.5 a démarré sur http : //0.0.0.0: 9876 /

Si ma mémoire est bonne, j'avais déjà rencontré cette erreur parce que j'utilisais un Karma obsolète avec un manuscrit plus mis à jour ou était-ce l'autre

Quoi qu'il en soit, le dernier testeur de Karma est V4.3.0 a >.

Vous pouvez mettre à jour votre Karma et votre Jasmine en exécutant ces commandes:

npm install karma@latest --save-dev
npm install karma-jasmine@latest karma-chrome-launcher@latest jasmine-core@latest --save-dev
npm install @types/jasmine@latest --save-dev

Si vous avez installé des plugins de karma supplémentaires, vous voudrez probablement les mettre à jour aussi. Jetez un œil à votre package.json. Par exemple , vous pourriez avoir karma-firefox-launcher au lieu de la version de chrome.


J'ai fait une simple recherche dans l'historique de mon navigateur et j'ai trouvé ce problème github: https://github.com/DefinitelyTyped/DefinatelyTyped/issues/30310

Ce numéro a mis en évidence la manière dont ils ont résolu le problème en rétrogradant / en mettant à jour leur manuscrit vers la version de support jasmine / karma.

Avec des essais et des erreurs et probablement quelques recherches, vous trouverez probablement une combinaison appropriée de karma, jasmine et dactylographiés qui sont compatibles entre eux dans Angular 7.

Cependant, je vous suggère de simplement mettre à niveau votre @ angular / cli d'Angular 7 à Angular 8 et de mettre à jour tout votre karma et les packages jasmine.

Angular 8 contient de nombreux changements de rupture qui ont conduit de nombreuses bibliothèques tierces Angular à mettre à jour toutes leurs bibliothèques. Par conséquent, si vous deviez faire un npm i some-lib à l'avenir, cela pourrait ne pas fonctionner avec votre projet Angular 7. Et vous devrez trouver la dernière version fonctionnelle qui fonctionne bien avec Angular 7. La mise à niveau vers Angular 8 vous évitera beaucoup de ces problèmes de "rétrogradation". Les derniers packages karma et jasmine fonctionnent avec Angular 8 et il est beaucoup plus facile pour vous de simplement tout mettre à jour vers les dernières versions de travail.

Guide officiel de mise à jour angulaire


8 commentaires

Salut @Riv, j'ai exécuté les commandes et ajouté la sortie en tant que modification à ma question. Vous pouvez maintenant voir que j'ai karma 4.3.0 mais que j'ai toujours les erreurs ci-dessus.


J'ai modifié ma réponse avec un problème github lié au code d'erreur que j'ai trouvé dans mon historique de recherche. J'espère que cela vous mettra dans la bonne direction cependant ...


Merci. Ayant un peu de mal avec la solution, "npm install typescript / 2.8.4 --save-dev" recommandé dans le lien (obtenir L'authenticité de l'hôte 'github.com (192.30.253.113)' ne peut pas être établie. ) mais c'est un bon point de départ.


Notez que le problème de github a presque un an. Et Angular 7 (dont vous avez parlé est la version que vous utilisez dans votre question) prend en charge le typographie 3.1, je ne suis pas sûr de la version 2.8.4 du type. C'est pourquoi j'ai suggéré de simplement tout mettre à jour vers la dernière version =)


Hey @Dave, on dirait que vous aviez commencé une prime = 0 ... avez-vous mis à jour vers Angular 8 et ce n'est toujours pas résolu pour vous? Jetez également un œil à ceci , peut-être que cela aiderait si vous supprimiez simplement les symboles précédents avant les paquets jasmine?


Malheureusement, dans ma situation actuelle, la mise à niveau vers Angular 8 n'est pas une option. Je voudrais voir s'il existe une solution pour Angular 7. Merci pour toutes vos suggestions, cependant.


icic. Je viens de voir votre montage, il semble que vous ayez réussi à faire fonctionner le karma. Mais votre version de jasmin est probablement trop récente / ancienne, c'est pourquoi une fonction n'a pas pu être trouvée. Découvrez ce problème github , il a réussi à corriger TypeError: env.catchExceptions n'est pas une fonction pour Angular 7 avec une combinaison de versions inférieures de karma et de jasmin. Quoi qu'il en soit, si cela ne vous aide pas à résoudre le problème, puis-je vous suggérer de modifier votre package.json?


J'ai eu le même problème lors d'une mise à jour de projet de angular 7 à 8. Dans mon cas, j'ai besoin de mettre à jour karma-jasmine-html-reporter vers la dernière version (0.2.2 => 1.4.2). Peut-être que dans votre cas, vous devez trouver une version correspondante.



0
votes

Il ne semble pas que vous enrouliez votre test autour d'un beforeEach pour configurer le module de test angulaire. Pouvez-vous essayer le code ci-dessous:

    describe('MyComponent', () => {
      beforeEach(async(() => {
        TestBed.configureTestingModule({
          declarations: [ 
            // All the components referenced in the test
          ],    
          providers: [
            // All injected services
          ]
        })
        .compileComponents();
      }));


    it('should create an instance of Pastebin',() => {
      expect(new Pastebin()).toBeTruthy();
    });

  })


6 commentaires

Salut @Paul, j'obtiens deux erreurs lorsque j'exécute votre code. Ce sont "ERREUR dans src / app / pastebin.spec.ts (7,14): erreur TS2304: Impossible de trouver le nom 'async'. Src / app / pastebin.spec.ts (8,5): erreur TS2304: Impossible de trouver nom 'TestBed' "


Vous pouvez l'importer depuis @ angular / core / testing. J'espère que cela t'aides!


Cela a résolu l'erreur TestBed, mais qu'en est-il de l'erreur asynchrone? Toujours obtenir l'erreur "erreur TS2304: impossible de trouver le nom 'async'."


Avez-vous également importé async depuis @ angular / core / testing?


Cela a résolu l'erreur de compilation, mais maintenant l'erreur qui se produit lors de l'exécution du test lui-même est, "Erreur HeadlessChrome 76.0.3809 (Mac OS X 10.13.6), Une erreur a été générée dans afterAll, TypeError: env.catchExceptions n'est pas une fonction "


Voir si le lien stackoverflow.com/questions/51543241/... aide .... Je pense que vous pouvez installer karma-spec-reporter et l'ajouter au karma. conf.js pour obtenir de meilleurs messages.



2
votes

J'ai vu un problème très similaire à celui-ci lors de l'exécution de typescript @ 2.7.2 et @ types / jasmine supérieur à 2.8.8 ou jasmine> = 3.0.

La version de travail sûre que je connais est

"karma-jasmine-html-reporter":"0.2.2"

Si ce n'est pas le cas, veuillez envoyer votre package.json. Certaines des bibliothèques mises à jour nécessitent du typecript 3.0, et si vous ne l'avez pas, vous devez pointer vers des versions plus anciennes.

Je vois également que https://github.com/dfederm/karma-jasmine-html-reporter dit Pour Jasmine

"dependencies": {
    "@angular/animations": "7.2.0",
    "@angular/common": "7.2.0",
    "@angular/compiler": "7.2.0",
    "@angular/core": "7.2.0",
    "@angular/forms": "7.2.0",
    "@angular/platform-browser": "7.2.0",
    "@angular/platform-browser-dynamic": "7.2.0",
    "@angular/router": "7.2.0",
    "core-js": "2.5.4",
    "rxjs": "6.3.3",
    "tslib": "1.9.0",
    "zone.js": "0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "0.13.0",
    "@angular/cli": "7.3.8",
    "@angular/compiler-cli": "7.2.0",
    "@angular/language-service": "7.2.0",
    "@types/node": "8.9.4",
    "@types/jasmine": "2.8.8",
    "@types/jasminewd2": "2.0.3",
    "codelyzer": "5.1.0",
    "jasmine-core": "2.99.1",
    "jasmine-spec-reporter": "4.2.1",
    "karma": "4.1.0",
    "karma-chrome-launcher": "2.2.0",
    "karma-coverage-istanbul-reporter": "2.0.5",
    "karma-jasmine": "2.0.1",
    "karma-jasmine-html-reporter": "1.4.2",
    "protractor": "5.4.2",
    "ts-node": "7.0.0",
    "tslint": "5.11.0",
    "typescript": "3.2.2"
  }


6 commentaires

Salut, j'ai mis à jour les versions à ce que vous avez suggéré (inclus mon package.json dans edit-3 à ma question). J'ai également inclus l'erreur que j'obtiens en conséquence - "TypeError: env.catchExceptions n'est pas une fonction"


Hein, c'est intéressant, car package.json indique que vous utilisez Angular 5 quand vous dites que vous êtes sur Angular 7. Je mets à jour ma réponse pour avoir la liste complète des dépendances pour mon application angular 7 qui, je le sais, fonctionne. Il a également une version plus élevée de dactylographié, ce qui, je pense, va résoudre ce que vous voyez.


Veuillez également noter que je n'utilise pas ~ ou ^ car ces dépendances peuvent être étranges. J'aime les versions exactes pour la cohérence.


Merci. J'ai remplacé les "dependencies" et "devDependencies" de mon package.json par ce que vous avez. Dois-je faire quelque chose pour les installer avant d'exécuter "ng test"? Je demande parce qu'après avoir remplacé ceux dans package.json et exécuté "ng test", j'ai toujours ces "HeadlessChrome 76.0.3809 (Mac OS X 10.13.6) ERROR, Une erreur a été générée dans afterAll, TypeError: env.catchExceptions n'est pas une fonction "erreurs.


Oh oui, après les avoir configurés, lancez simplement npm i ou npm install . Parfois, vous devez d'abord supprimer package-lock.json


J'aurais dû mentionner comment j'ai abordé la résolution de ce problème lorsque j'ai rencontré cela il y a quelques mois. J'étais en train de mettre à jour jasmine et j'ai trouvé que la dernière version m'a donné l'erreur que vous avez initialement vue. Alors j'ai commencé à rétrograder en saisissant les numéros de version dans package.json et en exécutant npm i . Cela a pris plusieurs essais, mais j'ai trouvé la dernière version de jasmine que je pouvais utiliser avec la version dactylographiée dans laquelle j'étais verrouillé à l'époque car nous n'étions que sur Angular 6. @Dave