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的测

  • ActionManager.js从文件夹中读取包含所有可能测试函数的文件(库)

  • WorkflowManager.js读取包含所需测试描述的文件(测试工作流)。每个文件都包含操作和参数数组

  • TestsRunner.js需要并运行ActionManager和WorkflowManager。之后,我想用参数运行每个测试工作流的操作(执行Jasmine测试)

  • 如何在严重情况下执行此过程?

    我尝试将runner实现为:

    • 调用require beforedescription块,因此Jasmine的测试在此之前运行

    • 将require放入beforeach,这样beforeach在执行it()之前就被调用了;因此,我知道在需要并获得流数组之后,要循环it()的流的数量;但是当执行it()时,应该已经从已经定义的循环的迭代中调用了它

    • 我将mock descripe block和它()放在main descripe下进行初始化,但在本例中,cycle for()将流的数量设置为0,在这之后,所有descripe开始执行,数量被初始化

    • 我将这两个decribe包装到另一个->在decribeit之间编码,描述和内部,因为循环未执行

    下面是代码的一部分,它只需要WorkflowManager,并在每次迭代时循环工作流数组大小和控制台输出

        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