如何从我的testcafe文件中的单独文件传递数据

时间:2019-03-07 11:27:07

标签: javascript testing automated-tests e2e-testing testcafe

这是我正在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 个答案:

答案 0 :(得分:4)

您不能将输入存储在某些.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');
}); 

答案 1 :(得分:2)

找到了解决方案

创建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))
});

该解决方案非常适合我。
如果有人有更好的解决方案,我很乐意实施和测试。