【问题标题】:testCafe: Using Role in testscripttestCafe:在测试脚本中使用角色
【发布时间】:2020-04-11 22:40:41
【问题描述】:

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

我在一个单独的文件 (/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)
   });

测试失败是因为: " "role" 参数应该是一个 Role 实例,但它是未定义的。"

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

II 第二个问题/问题

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

夹具My fixture .pagehttp://www.example.com/;

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

如何避免?

【问题讨论】:

    标签: typescript testing automated-tests testcafe user-roles


    【解决方案1】:
    1. 您的模块定义中似乎有错字。你有module.export = {...},但正确的用法是module.exports = {...}。
    2. 可以不指定测试页面。在这种情况下,测试从“空白”页面开始,然后您将被重定向到 Role/login 页面。

    【讨论】:

      猜你喜欢
      • 2016-08-02
      • 2016-12-03
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2021-03-25
      • 2019-02-12
      • 1970-01-01
      • 2021-08-07
      相关资源
      最近更新 更多