数据驱动测试未传递 1 个参数

Data Driven test not passing 1 parameter

1。我的登录页面模型:

import {Selector,t} from "testcafe"
class LoginPage{
    constructor(){
        this.email= Selector("#email")
        this.password= Selector("#password")
        this.loginButton =Selector(".new-button")
        this.link= Selector("a").withText("Welcome, System Administrator")
        this.onscreenmessage = Selector("#main > div.notification.notification-error > div > p")

    }

async login(username, password){
    var that = this;
    await t.typeText(that.email, username)
           .typeText(that.password, password)
           .pressKey("enter")  
           .expect(this.link).ok()
    console.log("User is able to login successfully")   
}

}

export default LoginPage

2。我的登录数据集

[
    {
        "testcasename:": "Test for Non Existing User by username",
        "loginusername": "TestUser",
        "loginpassword": "I love TestCafe!",
        "onscreenmessage": "Invalid Login or password."
    },
    {
        "testcasename:": "Test for Non Existing User by email",
        "loginusername": "OliviaPeyton@abc.com",
        "loginpassword": "TestCafe is awesome!",
        "onscreenmessage": "Invalid Login or password."
    },
    {
        "testcasename:": "Test for Valid User and invalid password",
        "loginusername": "Demopreview_admin",
        "loginpassword": "TestCafe is awesome!",
        "onscreenmessage": "Invalid username/email or password."
    }
]

3。以下是我的测试的编写方式 - 基本上遍历 json 文件,并希望看到测试用例名称显示在日志中。但是把它当作undefined.

import { Selector } from 'testcafe';
import {login} from "../helper"
import LoginPage  from "../page-object/Login-Page"

const dataSet = require('../test/testdata/login.json')

fixture `Role based access control`
    .page `https://demopreview-qa-test-myplace.net/users/sign_in`

const LoginPage = new LoginPage()

dataSet.forEach(userdata => {
test('Executing Tests '${data.testcasename'}', async t => {
        await LoginPage.login(userdata.loginusername,userdata.loginpassword);
        await t.expect(LoginPage.onscreenmessage.textContent).eql(userdata.onscreenmessage,'Match not found');
    });
});

寻找一双眼​​睛扫视一下,看看我做错了什么。

您的代码中有两个拼写错误:

  • testcasename: 而不是 .json 文件中的 testcasename(额外的冒号)。
  • 以下代码中的变量名称不正确:test('Executing Tests '${data.testcasename'}'...data 而不是 userdata