Protractor: Problème de frappe depuis la mise à jour de @types/jasmine

Créé le 22 mars 2017  ·  10Commentaires  ·  Source: angular/protractor

Depuis la sortie de @types/[email protected] , j'ai ce problème lors de l'exécution de mes tests de rapporteur avec du texte écrit :

[18:37:17] E/launcher - Error: TSError: ⨯ Unable to compile TypeScript
e2e/app.e2e-spec.ts (19,45): Argument of type '"Hello world !"' is not assignable to parameter of type 'Expected<Promise<string>>'. (2345)

Cette trace revient à ce code :

    expect(page.getParagraphText()).toEqual('Hello world !');

Dans les nouveaux types de jasmin, les typages expect sont désormais appliqués (ce n'était pas le cas auparavant).
Il semble que les remplacements de jasmin du rapporteur qui attendent que les promesses se résolvent avant d'effectuer le match doivent étendre les frappes pour que cela fonctionne correctement.

Rapport d'erreur

  • Version du nœud : 6.x
  • Version rapporteur : 5.x
  • Version angulaire : 2.x
  • Navigateur(s) : PhantomJS
  • Système d'exploitation et version osx 10.12.11

Commentaire le plus utile

@ChristianStornowski Merci, j'ai trouvé pourquoi ça ne fonctionnait pas !

J'utilise angular-cli et la configuration par défaut e2e package.json a :

    "types": [
      "jasmine",
      "node"
    ]

le changer en :

    "types": [
      "jasmine",
      "jasminewd2",
      "node"
    ]

fais-le fonctionner!

Tous les 10 commentaires

Merci de l'avoir noté.

Pouvez-vous épingler vos types en attendant pour résoudre ce problème ?

Bien sûr, c'est déjà fait 😉
Merci pour ce super outil en tout cas !

Ouais :-(

J'ai aussi observé ceci
e2e/app.e2e-spec.ts(23,54): error TS2345: Argument of type 'false' is not assignable to parameter of type 'Expected<Promise<boolean>>'.

pour la ligne
expect(element(by.css('h1')).isPresent()).toBe(false);

Typographies de jasmin déclassées en
"@types/jasmine": "2.5.45"

Pour les tests Jasmine, vous pouvez utiliser @types/jasminewd2 en plus de @types/jasmine .

attendre(
à
attendre(

ça a marché pour moi

@ChristianStornowski ne fonctionne toujours pas même avec @types/jasminewd2

Voici mes paramètres pour package.json

... "devDependencies": { ... "@types/jasmine": "^2.5.52", "@types/jasminewd2": "^2.0.2", "jasmine-core": "^2.6.4", "typescript": "^2.3.4", ... } ...

pour tsconfig.json

{ "compilerOptions": { "target": "es5", "module": "CommonJS", "moduleResolution": "Node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true, "outDir": "build", "strictNullChecks": true, "lib": [ "DOM", "ES5", "ES6", "ES7", "DOM.Iterable", "ScriptHost" ] } }

Cela fonctionne avec IntellIJ actuel pour moi.

@ChristianStornowski Merci, j'ai trouvé pourquoi ça ne fonctionnait pas !

J'utilise angular-cli et la configuration par défaut e2e package.json a :

    "types": [
      "jasmine",
      "node"
    ]

le changer en :

    "types": [
      "jasmine",
      "jasminewd2",
      "node"
    ]

fais-le fonctionner!

Des mises à jour après 13 mois les gars ?

@mruzek Quel genre de mise à jour attendez-vous ? Il n'y a rien de cassé ici.

Vous avez deux options :

  • Installez @types/jasminewd2 comme indiqué ci-dessus et continuez à utiliser Protractor avec SELENIUM_PROMISE_MANAGER: true (solution non recommandée, car elle est obsolète, présente de nombreux inconvénients et sera éventuellement supprimée).
  • Définissez SELENIUM_PROMISE_MANAGER: false et utilisez la syntaxe async/await la place (solution recommandée, voir la documentation ici ).
Cette page vous a été utile?
0 / 5 - 0 notes