Jasmine 数据提供程序不工作(jasmine_data_provider_1.using 不是函数)
Jasmine Data Provider is not working (jasmine_data_provider_1.using is not a function)
我正在尝试通过使用 jasmine 数据提供程序在我的项目中实现数据驱动测试。
我有一个如下所示的 data.ts
文件
export const hardshipTestData = {
scenarios: {
scenario1: {
isHome: 'Yes'
},
scenario2: {
isHome: 'No'
}
}
};
我在规格文件中使用以上数据
import { using } from 'jasmine-data-provider';
import { hardshipTestData } from '../../data/testdata';
using(hardshipTestData.scenarios, function (data, description) {
it('testing data providers', () => {
console.log(data.isHome);
});
});
我的问题是当我尝试编写 data.
智能时甚至没有给出选项 isHome
。当我执行它和 运行 测试时,我收到以下错误
TestSuite encountered a declaration exception
configuration-parser.js:48
- TypeError: jasmine_data_provider_1.using is not a function
感谢任何帮助
您需要更改导入类型。尝试替换:
import { using } from 'jasmine-data-provider';
与:
const using = require('jasmine-data-provider');
此外,请记住首先应该是 describe
块:
describe('example test', () => {
using(hardshipTestData.scenarios, (data) => {
it('should calc with operator -', () => {
console.log(data.isHome);
});
});
});
添加到 Oleksii 答案中,他的答案是针对打字稿的。
但如果你想在普通 javascript 中使用,请使用以下内容:
在您的代码中添加以下内容:
var using = require('jasmine-data-provider');
示例:
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);
});
});
您可能需要为普通 javascript 提供 Jasmine 数据提供程序的完整路径,以避免出现模块未找到错误。
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(){
您需要为 "jasmine-data-provider" 声明变量,因为 import 可以用来导入 properties/classes。
你可以给变量起任何名字而不是使用变量(我试过使用 "post" 而不是 "using" 并且它仍然按预期工作)
你的代码应该像
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);
})
})
})
这将解决您的问题。
我正在尝试通过使用 jasmine 数据提供程序在我的项目中实现数据驱动测试。
我有一个如下所示的 data.ts
文件
export const hardshipTestData = {
scenarios: {
scenario1: {
isHome: 'Yes'
},
scenario2: {
isHome: 'No'
}
}
};
我在规格文件中使用以上数据
import { using } from 'jasmine-data-provider';
import { hardshipTestData } from '../../data/testdata';
using(hardshipTestData.scenarios, function (data, description) {
it('testing data providers', () => {
console.log(data.isHome);
});
});
我的问题是当我尝试编写 data.
智能时甚至没有给出选项 isHome
。当我执行它和 运行 测试时,我收到以下错误
TestSuite encountered a declaration exception
configuration-parser.js:48
- TypeError: jasmine_data_provider_1.using is not a function
感谢任何帮助
您需要更改导入类型。尝试替换:
import { using } from 'jasmine-data-provider';
与:
const using = require('jasmine-data-provider');
此外,请记住首先应该是 describe
块:
describe('example test', () => {
using(hardshipTestData.scenarios, (data) => {
it('should calc with operator -', () => {
console.log(data.isHome);
});
});
});
添加到 Oleksii 答案中,他的答案是针对打字稿的。 但如果你想在普通 javascript 中使用,请使用以下内容:
在您的代码中添加以下内容:
var using = require('jasmine-data-provider');
示例:
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);
});
});
您可能需要为普通 javascript 提供 Jasmine 数据提供程序的完整路径,以避免出现模块未找到错误。
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(){
您需要为 "jasmine-data-provider" 声明变量,因为 import 可以用来导入 properties/classes。 你可以给变量起任何名字而不是使用变量(我试过使用 "post" 而不是 "using" 并且它仍然按预期工作)
你的代码应该像
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);
})
})
})
这将解决您的问题。