Как использовать переменные окна между приборами для TestCafe? - PullRequest
3 голосов
/ 02 июля 2019

У меня есть один прибор, "Page1", который я использую генератор случайных слов для создания именованного поля ввода. Мне нужно будет использовать эту переменную на другом приборе, "Page2". Как я могу сделать это? Мы не можем использовать окно для testcafe, и все попытки экспортировать результат в ReferenceError: fixture is not defined ошибку.

На странице 1 у меня есть такой код:

const words = require('random-words');
export let inputName;

fixture('Page1'); 


test('Create Page1', async (t) => {
    await loginPage.login();

    inputName = `input ${words()}`;

и на странице 2

import {inputName} from './page1';

если я вычитаю оператор импорта, все работает.

1 Ответ

4 голосов
/ 02 июля 2019

Вы можете хранить свои переменные в отдельном файле, например:

fixture1.js

import getInputName from './get-input-name';   
 
fixture('Page1');   
 
test('Create Page1', async t => {
    await t.typeText('input', getInputName());
});

fixture2.js

import getInputName from './get-input-name';
 
fixture('Page2');   
 
test('Create Page2', async t => {
    await t.typeText('input', getInputName());
});

get-input-name.js

const words = require('random-words');  
 
let inputName = null;   
 
export default function getInputName () {
    if (!inputName)
        inputName = `input ${words()}`;       
 
    return inputName;
}

Чтобы получить больше информации об использовании помощников в TestCafe, взгляните на рецепт в Документах.

...