var Test1 = function (testcases) {
var testData = testcases
var testResult = false;
var startTime;
var endTime;
var day = currentDate();
describe(`Test Case: ${testData[0].testname}`, function () {
this.timeout(40000);
this.slow(100);
console.log(testData.length);
before(function* () {
nightmare = Nightmare(testSetting.nightmare);
});
for (var i = 0; i < testData.length; i++) {
console.log("At least we make it here,line27");
it('Check page ' + testData[i].testname, function* () {
console.log("At least we make it here,line29");
startTime = currentTime();
var folderNameforResult = `TestResultJSONs`;
var folderNameforCaseByCase = `TestResultJSONs/${testData[i].testname}`;
JSONFolderCreate(folderNameforResult);
JSONFolderCreate(folderNameforCaseByCase);
console.log("At least we make it here,line35");
yield nightmare
.goto(testData[i].loc)
.wait(testData[i].SEL) // Coverage search box
.then(() => {
console.log(testData[i].testname + ' Landing page is loaded.');
testResult = true;
endTime = currentTime();
console.log(startTime, endTime, day);
OutputJSON(testData[i].testname, testResult, startTime, endTime, testData[i].SEL, testData[i].loc, day);
})
.catch(error => {
console.log(testData[i].testname + ' Landing page fail.');
testResult = false;
endTime = currentTime();
mailFail(testData[i].testname, testData[i].loc);
console.log(startTime, endTime, day);
OutputJSON(testData[i].testname, testResult, startTime, endTime, testData[i].SEL, testData[i].loc, day);
})
});
}
after(function* () {
yield nightmare.end();
})
})
}
结果:125至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到,第27行至少我们在这里做到了,第27行
测试用例:personal_home_tc_至少我们在这里取得成功,第29行1)检查页面personal_home_tc _
0通过(29ms)1个失败
1)测试用例:personal_home_tc_检查页面personal_home_tc_:TypeError:无法读取未定义的属性“ testname”在上下文中。 (test_template1.js:32:78)在Generator.next()在onFulfilled(node_modules \ co \ index.js:65:19)在C:\ Users \ robert.lui \ Documents \ nightmare \ node_modules \ co \ index.js:54:5在新的Promise()在co(node_modules \ co \ index.js:50:10)在Context.args。(匿名函数)(node_modules \ mocha-generators \ index.js:25:6)
似乎像for循环先运行line27 125次,然后仅跳过it()中的所有内容,这是最重要的部分。如何使它正常运行,即运行第27行,然后到达then或然后获得结果,然后返回第27行125次?
实际上,这并不奇怪。 Jest异步运行测试。因此,当您调用it('...', () => { ... })
时,它不会运行,而只是计划。由于使用var
定义变量,因此执行测试时具有相同的值。在这种情况下,请使用it.each()
,或者至少应在循环中切换为let
。