J'essaie de réaliser des tests basés sur les données dans mon projet en utilisant des fournisseurs de données jasmine.
J'ai un fichier data.ts
comme ci-dessous
TestSuite encountered a declaration exception configuration-parser.js:48 - TypeError: jasmine_data_provider_1.using is not a function
4 Réponses :
Vous devez changer le type d'importation. Essayez de remplacer:
describe('example test', () => { using(hardshipTestData.scenarios, (data) => { it('should calc with operator -', () => { console.log(data.isHome); }); }); });
par:
const using = require('jasmine-data-provider');
Aussi, gardez à l'esprit que tout d'abord devrait être le bloc describe
:
import { using } from 'jasmine-data-provider';
Merci d'avoir répondu. import {using} from 'jasmine-data-provider';
const using = require ('jasmine-data-provider');
Pouvez-vous m'expliquer la différence entre l'importation de et exigent. Quand utilisons-nous l'importation et quand utilisons-nous require? peu confus nouveau dans les scripts.
il s'agit de différents types de modules. Tapez simplement google "Types de modules en js"
Ajoutant à la réponse d'Oleksii, sa réponse est pour le tapuscrit. mais si vous souhaitez utiliser en javascript simple, utilisez ci-dessous:
Ajoutez ci-dessous dans votre code:
var jasminedatasetobj = require("./jasmineDataDrivenData"); var using = require('jasmine-data-provider'); using(jasminedatasetobj.datadrive, function (data, description) { it('Open NonAngular js website Alerts', async() => { await browser.get("https://qaclickacademy.github.io/protocommerce/"); element(by.name("name")).sendKeys(data.name); }); });
Exemple:
var using = require('jasmine-data-provider');
Vous devrez peut-être indiquer le chemin complet du fournisseur de données Jasmine pour le javascript brut pour éviter l'erreur module not found.
var jsondataobj = require('../../../../config/Jsoninput.json');//define the data source location var using = require('C:/Users/sam/AppData/Roaming/npm/node_modules/jasmine-data-provider'); describe("Test Jasmine Data provider",function(){
vous devez déclarer la variable pour "jasmine-data-provider", car l'importation peut utiliser pour importer les propriétés / classes. au lieu d'utiliser la variable, vous pouvez donner n'importe quel nom à la variable (j'ai essayé d'utiliser "post" au lieu de "using" et cela fonctionne toujours comme prévu)
votre code devrait ressembler à
import { hardshipTestData } from "../Test"; const using = require("jasmine-data-provider"); describe("Login TestCases", () => { using(hardshipTestData.scenarios, (alldata: any, alldesc: any) => { it("login with different credentials", async () => { console.log(data.isHome); }) }) })