Как передать данные из отдельного файла в мой файл testcafe - PullRequest
2 голосов
/ 07 марта 2019

Это своего рода тест, который я пытаюсь запустить в testcafe v1.0.1, я новичок в этом.Это мой test.js файл, в котором у меня есть три разных тестовых примера R03, R05, R06 и все они ищут элемент на веб-странице с помощью функции withText ().Есть ли в любом случае для меня сделать файл конфигурации (json / js), где я могу сохранить входные данные для Year_1, Year_2, Year_3, & Location_1, Location_2, Location_3 и использовать его в моем текущем файле .js.

`import { Selector } from 'testcafe';

fixture `First Fixture`
    .page `http://devexpress.github.io/testcafe/example`;

test('R03', async t => {
    await t  
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_1'))
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_1'))
});

test('R05', async t => {
    await t
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_2'))
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_2'))
});

test('R06', async t => {
    await t
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_3'))
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_3'))
});

Ответы [ 2 ]

5 голосов
/ 07 марта 2019

Вы не можете хранить входные данные в каком-либо файле .js.Но вы можете сохранить селекторы входов и использовать их в своих тестах.Пример:

element-selectors.json

{
  "developerNameInput": "#developer-name",
  "populateBtn": "#populate"
}

test.js

fixture `Fixture`
    .page('https://devexpress.github.io/testcafe/example/');

const elementSelectors = require('./element-selectors.json');   

test('test', async t => {
    await t.typeText(elementSelectors.developerNameInput, 'Peter Parker');
}); 
2 голосов
/ 07 марта 2019

Нашли решение

Создайте файл config.js
config.js

export default {
        // Preview Paramters for R03 Report
        year:       '2019',
        Location:   'Dublin',
};

Теперь пусть ваш основной текстовый файл будет test.js
test.js

import { Selector } from 'testcafe';
import data from "./config.js"; 

fixture `First Fixture`
    .page `http://devexpress.github.io/testcafe/example`;

test('R03', async t => {
    var year = data.year.toString();
    var location = data.location.toString();
    await t  
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText(year))
        .click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText(location))
});

Решение отлично сработало для меня.
Если бы у кого-то было лучшее решение, я был бы рад его внедрить и протестировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...