typescript - testCafe:在测试脚本中使用角色

标签 typescript testing automated-tests testcafe user-roles

** 第一个问题/疑问:**

我在单独的文件 (/Support/utilities) 中定义了 2 个角色:

import channelsPage from '..'
import config from '../Config/config';
import {Role} from 'testcafe';
import loginPage from '..';

let l1 =  require('../support/global').log[1];
let l0 =  require('../support/global').log[0];

const SuperUser = Role(config.baseUrl, async t => {

  //Log in as superuser
  await loginPage.logIn(l1.username, l1.password)

   //Check if proper site opened

 if (await loginPage.keycloakLoginError.exists) {
        await loginPage.logIn(l1.username, l1.password)
    }
    else {
        await t.expect(channelsPage.lineupsAndPackages.exists).ok();
        await t.expect(channelsPage.createDropUp.exists).ok();

  }
})

const NormalUser = Role(config.baseUrl, async t => {

  //Log in as superuser
  await loginPage.logIn(l0.username, l0.password)

   //Check if proper site opened

 if (await loginPage.keycloakLoginError.exists) {
        await loginPage.logIn(l1.username, l1.password)

    }
    else {
        await t.expect(channelsPage.lineupsAndPackages.exists).ok();
        await t.expect(channelsPage.createDropUp.exists).ok();

  }
})

module.export ={
  SuperUser: SuperUser,
  NormalUser: NormalUser
}

然后在测试脚本(另一个文件)中使用定义的角色之一:NormalUser

import config from './Config/config';
import NormalUser from './Support/utilities';


fixture`SanityTests`
  .beforeEach(async t => {
    await t.maximizeWindow()
  })
  .page`${config.baseUrl}`;

test('Search', async t => {

  await t.maximizeWindow();

  //Log in
  await t.useRole(NormalUser.NormalUser)
   });

测试失败的原因是: ““角色”参数应该是一个角色实例,但它是未定义的。”

当我将这些放在一个文件中时 - 测试通过了,所以问题一定是错误定义的角色(如何正确地做到这一点?)

II 第二个问题/问题

当我创建 Role 构造函数时: Role( URL, func( t ) [, options] ) 我必须指向登录页面的 URL,然后当我在固定装置中创建测试时,我必须配置固定装置 - 指定起始网页,

夹具我的夹具 .page http://www.example.com/;

所以这个页面是双重加载...

如何避免?

最佳答案

  1. 您的模块定义中似乎有拼写错误。您有 module.export = {...},但正确的用法是 module.exports = {...}
  2. 可以不指定测试页面。在这种情况下,测试从“空白”页面开始,然后您将被重定向到角色/登录页面。

关于typescript - testCafe:在测试脚本中使用角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59407928/

相关文章:

javascript - 将对象转换为 typescript 中的模型

api - GraphQL API - 任何用于测试它的自动化工具?

cmocka自由运行和捕获异常

testing - 如何在没有额外软件的情况下在 Intellij Idea 中提交之前自动运行测试?

testing - 实验室环境中的编码 UI 测试

selenium - 如何使用 Selenium WebDriver 捕获网络流量并查找 google Analytics 调用?

javascript - 如何在不创建新函数的情况下将参数传递给 React + Typescript 中的回调?

Angular2 指令 - 字符串问题

angular - 如何在 Angular 中不使用方法 stub 导入的模块?

java - Maven surefire 和 JDK 11