2.1.3 • Published 3 months ago

@esydoc/resolver-qa v2.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
3 months ago

@esydoc/resolver-qa

一个解析Api源码生成QA代码的解析器

Installation

npm i @esydoc/resolver-qa -D

Usage

esydoc.config.js文件中的resolves字段添加@esydoc/resolver-qa对应的配置就ok拉。

// for example in esydoc.config.js
{
  resolves: {
    '@esydoc/resolver-qa': {
      pathPrefix: 'global.hyExt',
      output: {
        template: "hyext-qa-miniapp",
        dist: path.join(__dirname, "qa-effect-miniapp"),
        hostContext: {
          mocha: { timeout: 8 * 1000 },
          projectName: "qa-effect",
        },
      }
    },
  }
}

Esydoc Extra Config

pathPrefix

调用路径前缀,例如:pathPrefix为'global.hyExt', 原路径为’advance.getTid()‘拼接后'global.hyExt.advance.getTid()'。

{
  resolves: {
    '@esydoc/resolver-qa': {
      pathPrefix: 'global.hyExt',
    },
  }
}

hostContext

hostContext会注入到生成的代码之中,被用于项目运行时。

参数

NameTypeRequiredDefaultDescription
mochaMochaConfigfalsevoidmocha 配置对象,点这里
projectNamestringfalse'qa 默认项目'生成项目的名字
{
  resolves: {
    '@esydoc/resolver-qa': {
      output: {
        hostContext: {
          mocha: { timeout: 8 * 1000 },
          projectName: "qa-effect",
        },
      }
    },
  }
}

API配置文件对应配置

API配置文件对应配置通过源码的注释节点生成,用于配置接口的置顶行为,例如函数调用相关的数据配置。

配置

  • deps: string[],依赖队列,是一个一维数据,某些 api 需依赖其他优先执行,例如:SDK.removeListener 需要 SDK.addListener 先执行后再执行。

  • args: Array, 函数参数队列,是一个二维数据,每个成员代表一个 arguments 或者是一个返回 arguments 的函数,函数的参数从 deps 中获取。

  • onDone?: (e: Error | undefined, next: (e: Error | undefined) => void)=> void, 自定义控制断言结果的 hook, 传入 2 个参数,第一个是接口在测试用例中抛出的错误对象,第二个测试用例消费函数,若在 next 函数中传入错误对象,则代表该测试用例不通过,反之通过。

DEMO

以 advance.sendGift.js 为例子:

module.exports = {
  deps: ['context.getGiftConf'], // getGiftConf优先执行,输出礼物配置数据
  args: [
    // 第一次调用, 默认送一个虎粮
    giftConfQueue => {
      return [
        {
          giftCount: 1,
          giftId: 4
        }
      ]
    },
    // 第二次调用,送一个礼物列表中的一个礼物
    giftConfQueue => {
      const giftConf = giftConfQueue[11]

      return [
        {
          giftCount: 1,
          giftId: giftConf.giftId
        }
      ]
    },
    // 第三次调用,送一个虎粮 - giftId:4
    [
      {
        giftCount: 1,
        giftId: 4
      }
    ]
  ],
  onDone: (e, next) => {
    if (e) {
      // 有些时候,SDK接口抛出的错误
      if (e.message.includes('不能送自己礼物')) {
        next()
      } else {
        next(e)
      }
    } else {
      next()
    }
  }
}

TODO

目前断言的类型只有type equal是远远不够的,之后会将断言部分做成插件的形式,注入到esydoc中, 为定制化的断言做好准

内置模板

  • hyext-qa-miniapp - QA虎牙小程序模板

TODO

目前断言的类型只有 type equal 是远远不够的,之后会将断言部分做成插件的形式,注入到 esydoc 中, 为定制化的断言做好准备

后台

地址 - http://esydoc.huya.info/qa-list

2.1.3

3 months ago

2.1.3-beta.0

3 months ago

2.1.0

8 months ago

1.0.19

1 year ago

2.0.8-beta.0

1 year ago

1.0.18

1 year ago

2.0.7

1 year ago

2.0.7-beta.8

2 years ago

2.0.7-beta.9

2 years ago

2.0.7-beta.6

2 years ago

2.0.7-beta.7

2 years ago

2.0.7-beta.17

1 year ago

2.0.7-beta.13

2 years ago

2.0.7-beta.14

2 years ago

2.0.7-beta.15

1 year ago

2.0.7-beta.16

1 year ago

2.0.7-beta.10

2 years ago

2.0.7-beta.11

2 years ago

2.0.7-beta.12

2 years ago

2.0.7-beta.0

2 years ago

2.0.5-beta.1

2 years ago

2.0.3-beta.1

2 years ago

2.0.7-beta.1

2 years ago

2.0.5-beta.0

2 years ago

2.0.3-beta.0

2 years ago

2.0.7-beta.4

2 years ago

2.0.7-beta.5

2 years ago

2.0.7-beta.2

2 years ago

2.0.7-beta.3

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.6

2 years ago

2.0.1

2 years ago

2.0.4-beta.7

2 years ago

2.0.4-beta.5

2 years ago

2.0.4-beta.6

2 years ago

2.0.4-beta.3

2 years ago

2.0.4-beta.4

2 years ago

2.0.6-beta.1

2 years ago

2.0.4-beta.2

2 years ago

2.0.4-beta.0

2 years ago

2.0.6-beta.0

2 years ago

2.0.1-beta.2

2 years ago

2.0.1-beta.3

2 years ago

2.0.1-beta.0

2 years ago

2.0.1-beta.1

2 years ago

2.0.1-beta.6

2 years ago

2.0.1-beta.7

2 years ago

2.0.1-beta.4

2 years ago

2.0.1-beta.5

2 years ago

2.0.0

2 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.16-beta.5

3 years ago

1.0.16-beta.6

3 years ago

1.0.16-beta.4

3 years ago

1.0.16-beta.3

3 years ago

1.0.16-beta.1

3 years ago

1.0.16-beta.2

3 years ago

1.0.16-beta.0

3 years ago

1.0.15

3 years ago

1.0.15-beta.10

3 years ago

1.0.15-beta.9

3 years ago

1.0.15-beta.8

3 years ago

1.0.15-beta.7

3 years ago

1.0.15-beta.6

3 years ago

1.0.15-beta.5

3 years ago

1.0.15-beta.4

3 years ago

1.0.15-beta.3

3 years ago

1.0.15-beta.2

3 years ago

1.0.15-beta.1

3 years ago

1.0.15-beta.0

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.3

3 years ago