Jasmine 如何在测试描述中使用在beforeach中初始化的变量?

Jasmine 如何在测试描述中使用在beforeach中初始化的变量?,jasmine,protractor,Jasmine,Protractor,我在一个循环中运行了几个测试,我想在测试描述中使用beforeach中的变量 for(let i =0; i<3; i++){ describe("action", () => { let variableToUse: string; beforeEach(async () => { variableToUse = await someAction(i); });

我在一个循环中运行了几个测试,我想在测试描述中使用beforeach中的变量

for(let i =0; i<3; i++){
        describe("action", () => {
          let variableToUse: string;
          beforeEach(async () => {
            variableToUse = await someAction(i);
          });
            it("some test desc " + variableToUse, async () => {
             //some test using variableToUse
            });
        });
}
for(设i=0;i{
让变量:字符串;
beforeach(异步()=>{
可变=等待某个动作(i);
});
它(“一些测试描述”+可变、异步()=>{
//一些使用变量的测试
});
});
}
我希望控制台显示“some test desc varaibleToUseValue”,但实际输出是“some test desc undefined”

let variableToUse:string;
for(设i=0;i{
beforeach(异步()=>{
可变=等待某个动作(i);
});
它(“一些测试描述”+可变、异步()=>{
//一些使用变量的测试
});
});
}
这应该可以:

describe('testbeforeeach - ', function () {
  var TestSuiteName = this.getFullName();
  var TestVariable = null;    
  beforeEach(function () {
   TestVariable = "abc";
    return TestVariable;
  });    
  it(TestSuiteName + 'Test1', function () {        
      console.log("TestVariable for Test1 ====", TestVariable);        
  });    
  it(TestSuiteName + 'Test2', function () {       
      console.log("TestVariable for Test2 ====", TestVariable);
  });
});

请尝试下面给定的代码段

let variableToUse: number;

let i: number;

for(i =0; i<3; i++){
    describe("action", async () => {

      beforeEach(async () => {
         variableToUse =  i;
      });
        it("some test desc " + variableToUse, async () => {
         //some test using variableToUse
        });
    });
}
设变量为:数字;
让我:数字;
对于(i=0;i{
beforeach(异步()=>{
可变=i;
});
它(“一些测试描述”+可变、异步()=>{
//一些使用变量的测试
});
});
}

如果我是你,我会这样做

for(let i =0; i<3; i++){
    let variableToUse: string;
    describe("action", () => {
        beforeEach(async () => {
            variableToUse = await someAction(i);
        });
        it("some test desc " + variableToUse, async () => {
            //some test using variableToUse
        });
    });
}
for(设i=0;i{
beforeach(异步()=>{
可变=等待某个动作(i);
});
它(“一些测试描述”+可变、异步()=>{
//一些使用变量的测试
});
});
}

在这种情况下,您可以避免意外地重用以前执行的值,因为它总是在循环中定义的

我尝试将声明移到循环上方,但它仍然没有定义,感谢分享您的完整规范文件,以便在问题上提供更好的输入。因此,请确保您的someAction方法应返回一个值并保存在variabletouse变量中,似乎该方法存在问题。
for(let i =0; i<3; i++){
    let variableToUse: string;
    describe("action", () => {
        beforeEach(async () => {
            variableToUse = await someAction(i);
        });
        it("some test desc " + variableToUse, async () => {
            //some test using variableToUse
        });
    });
}