Javascript Node.JS+;茉莉花&x2B;量角器
有Javascript Node.JS+;茉莉花&x2B;量角器,javascript,node.js,automated-tests,protractor,jasmine-node,Javascript,Node.js,Automated Tests,Protractor,Jasmine Node,有 ActionManager.js从文件夹中读取包含所有可能测试函数的文件(库) WorkflowManager.js读取包含所需测试描述的文件(测试工作流)。每个文件都包含操作和参数数组 TestsRunner.js需要并运行ActionManager和WorkflowManager。之后,我想用参数运行每个测试工作流的操作(执行Jasmine测试) 如何在严重情况下执行此过程? 我尝试将runner实现为: 调用require beforedescription块,因此Jasmine的测
- 调用require beforedescription块,因此Jasmine的测试在此之前运行
- 将require放入beforeach,这样beforeach在执行it()之前就被调用了;因此,我知道在需要并获得流数组之后,要循环it()的流的数量;但是当执行it()时,应该已经从已经定义的循环的迭代中调用了它
- 我将mock descripe block和它()放在main descripe下进行初始化,但在本例中,cycle for()将流的数量设置为0,在这之后,所有descripe开始执行,数量被初始化
- 我将这两个decribe包装到另一个->在decribe和it之间编码,描述和内部,因为循环未执行
var firstTime = true;
beforeEach(function() {
if (firstTime) {
var flow = protractor.promise.controlFlow();
flow.execute(function() {
console.log("I'm beforeach part#1");
path = require("path");
testsPath = path.resolve("./e2e/tests/");
//requiring WorkflowManager
wfMng = require('./utils/WorkflowManager.js');
}).then(function() {
console.log("I'm beforeeach part#2");
var workflowPath = path.resolve("./e2e/data/workflows/");
//getting array of worklows
wfs = wfMng.getAllWorkflows(workflowPath + '\\');
}).then(function() {
console.log("I'm beforeeach part#3");
//console output of length of workflows array = 1 - is correct
console.log("Length of array in before each after initing " + wfs.length); //LENGTH = 1
firstTime = false;
})
}
});
describe("Describe for initialization", function() {
it("It block for initialization", function() {
expect(0).toEqual(0);
console.log("Length in 1st describe: " + wfs.length); //LENGTH = 1
});
});
describe("Core describe", function() {
console.log("This console log doesn't executed!!!!");
//CYCLE ISN'T EXECUTED - LENGTH = 0
for (var workflowidx = 0, wlen = wfs.length; workflowidx < wlen; workflowidx += 1) {
(function(widx) {
console.log("Length in for cycle: " + wfs.length);
describe("SBB" + widx, function() {
console.log("This console log doesn't executed!!!!");
it("My test" + widx, function() {
expect(2).toEqual(2);
console.log("Length in it func: " + wfs.length); //LENGTH = 1
});
});
})(workflowidx);
};
});
var firstTime=true;
beforeach(函数(){
如果(第一次){
变量流=量角器.promise.controlFlow();
flow.execute(函数(){
console.log(“我在每一部分之前”#1”);
路径=要求(“路径”);
testsPath=path.resolve(“./e2e/tests/”);
//需要WorkflowManager
wfMng=require('./utils/WorkflowManager.js');
}).然后(函数(){
console.log(“我在每个部分之前#2”);
var workflowPath=path.resolve(“./e2e/data/workflows/”);
//获取工作流数组
wfs=wfMng.getAllWorkflows(workflowPath+'\\');
}).然后(函数(){
console.log(“我在每个部分之前#3”);
//工作流数组长度为1的控制台输出正确
console.log(“每次初始化之前和之后的数组长度”+wfs.Length);//长度=1
第一次=错误;
})
}
});
描述(“描述初始化”,函数(){
it(“it初始化块”,函数(){
期望值(0)、toEqual(0);
console.log(“第一个描述中的长度:”+wfs.Length);//长度=1
});
});
描述(“核心描述”,函数(){
log(“此控制台日志未执行!!!!”);
//未执行循环-长度=0
对于(var workflowidx=0,wlen=wfs.length;workflowidx
如何处理这两个需求,获取可能的操作数组和所需的工作流,以及在此之后执行循环中的每个操作
我应该用茉莉的间谍吗
Node.JS v0.10.30
量角器V1.0.0