仅 运行 测试变量是否大于值赛普拉斯

Only run tests if a variable is larger than a value Cypress

如果版本在 cypress 中达到一定数量或更高,我将尝试仅 运行 一组测试,但我似乎无法使其正常工作。下面的代码有点抽象,但显示了整体结构:

if (version < 8203) {
  context('Skipping Tests', () => {
    it('Feature Not Available', () => {
      cy.task('log', "Skipping test. Feature not available in this version");
    });
  });
else {
  context('Testing Feature', () => {
    it('Test 1', () => {

    });
    it('Test 2', () => {

    });
    it('Test 3', () => {

    });
  });
}

我不确定这是否是解决此问题的正确方法,我尝试了几种不同的方法来构建它,包括将 if 语句放在上下文中,但看起来 cypress 忽略了 if 语句或只是继续前进到最后一个上下文并且它起作用。

您提到此代码用于获取 version 中的值。

let version; 
getVersion((setVersion) => {   
  version = parseInt(setVersion.replace(/[v.]/g, ''));   
  console.log(version); //8203 
});
if (version < 8203) {  ??? is this where you test ???

如果上述模式是您的测试的样子,我会说 getVersion() 回调在 if() 被评估之前尚未完成。

这个结构有改进吗?

let version; 
getVersion((setVersion) => {   
  version = parseInt(setVersion.replace(/[v.]/g, ''));   
  console.log(version); //8203 

  if (version < 8203) {  
    ...
  }
  else {
    context('Testing Feature', () => {
      it('Test 1', () => {
      ...
    });
  }
});