[英]Is it possible to loop tests in TestCafe?
我正在尝试使用 for 子句循环测试,因为我只想从 JSON 外部文件(具有许多节点和子节点)中获取数据。 我收到“没有要运行的测试”错误。 我使用 TestCafe 1.6.0 和 TestCafe Studio 1.1.0。
这里有一些示例代码:
import { t } from 'testcafe';
import {Selector} from 'testcafe';
import {Role} from 'testcafe';
import {helperFunc1, helperFunc2} from '../helper.js';
const fs = require('fs');
const path = require("path");
const fetch = require("node-fetch");
const rawdata = fs.readFileSync(path.resolve(__dirname, "../data.json"));
var data = JSON.parse(rawdata);
fixture `Test`
.page `http://www.testpage.com`
.beforeEach(t => t.resizeWindow(1920, 1080))
for(var i = 0; i < data.jsonNode[i].length; i++)
{
test(`Test - 1`, async t => {await helperFunc1(data.jsonNode[i]);
test(`Test - 2`, async t => {await helperFunc2(data.jsonNode[i], "All", "#HASH"); });
}
data.JSON 示例
{
"jsonNode": [
{
"test1": "A",
"test2": "101",
"test3": "2",
"test4": "4"
},
{
"test1": "B",
"test2": "102",
"test3": "3",
"test4": "5"
}],
"jsonNode1": [
{
"test10": "A",
"test11": "101",
"test12": "2",
"test13": "4"
},
{
"test10": "B",
"test11": "102",
"test12": "3",
"test13": "5"
}]
}
TestCafé 绝对可以进行循环测试,其结构与您描述的结构非常接近。
给定以下 JSON 文件,存储在“dataset.json”中:
{
"nodes": [
{
"id": 0,
"name": "MyFirstNode",
"foo": "bar1"
},
{
"id": 1,
"name": "MySecondNode",
"foo": "bar2"
},
{
"id": 2,
"name": "MyThirdNode",
"foo": "bar3"
},
]
}
TestCafé 可以使用以下实现在“节点”上循环:
// JSON dataSet containing array on which we will loop the tests
const dataSet = require( __dirname + 'dataset.json' );
fixture('MyLoopingTests')
.page('http://www.example.com');
// Getting the 'nodes' as a const for readability purpose
const nodes = dataSet.nodes;
nodes.forEach((nodes) => {
test(`Run the tests for "${node.name}"`, async t => {
// My test details for 'node'
});
})
产生以下 output:
MyLoopingTests
✓ Run the tests for "MyFirstNode"
✓ Run the tests for "MySecondNode"
✓ Run the tests for "MyThirdNode"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.