UNPKG

auto-request

Version:

通过Yapi JSON Schema生成接口Axios或Taro接口

178 lines (142 loc) 4.56 kB
# 测试配置统一管理 本目录包含所有测试用例的统一配置,确保开发测试和构建测试使用完全相同的配置。 ## 文件说明 ### configs.js 统一配置文件(CommonJS 格式),供所有测试使用。 **为什么只有一个 `.js` 文件?** - TypeScript 文件(`tests/dev/*.ts`)也可以通过 `require()` 导入 `.js` 配置 - 避免维护两份配置文件(`.ts``.js`- 测试用例不需要类型检查,简化配置管理 提供以下导出: - `allApiConfig`:all-api 测试配置 - `kaeConfig`:kae 测试配置 - `openConfig`:open 测试配置 - `usercenterConfig`:usercenter 测试配置 - `getConfig()`:获取配置的辅助函数 ## 配置结构 ```typescript interface TestConfig { filename: string; // 生成文件名 isTypeScript: boolean; // 是否使用 TypeScript jsdoc?: { // JsDoc 配置(可选) enable: boolean; }; loggerPath?: string; // 日志路径(运行时设置) loggerFileName?: string; // 日志文件名 snapshotsPath?: string; // 快照路径(运行时设置) skipPrompt: boolean; // 跳过用户确认 } ``` ## 使用示例 ### TypeScript(开发模式) ```typescript // tests/dev/all-api.ts import { autoRequest } from './../../src/index'; import path from 'path'; const { allApiConfig, getConfig } = require('./../base/configs'); // 使用 require 导入配置 const config = getConfig(allApiConfig, { loggerPath: path.join(__dirname, './../../example/all-api/logs/'), }); autoRequest(swaggerJson, apiPath, config); ``` ### JavaScript(构建模式) ```javascript // tests/build/all-api.js const { autoRequest } = require('./../../dist/bundle'); const { allApiConfig, getConfig } = require('./../base/configs'); const path = require('path'); const config = getConfig(allApiConfig, { loggerPath: path.join(__dirname, './../../example/all-api/logs/'), }); autoRequest(swaggerJson, apiPath, config); ``` **注意**:TypeScript 文件也使用 `require()` 导入配置,这样只需维护一个配置文件。 ## 配置列表 ### all-api ```typescript { filename: 'all-api', isTypeScript: true, loggerFileName: 'all-api.json', skipPrompt: true, } ``` - 大型项目测试(206 个接口) - TypeScript 模式 - 包含日志输出 ### kae ```typescript { filename: 'kae', isTypeScript: true, loggerFileName: 'kae.json', snapshotsPath: undefined, // 运行时设置 skipPrompt: true, } ``` - KAE 项目测试(57 个接口) - TypeScript 模式 - 包含快照和日志 ### open ```typescript { filename: 'index', isTypeScript: false, jsdoc: { enable: false }, snapshotsPath: undefined, // 运行时设置 skipPrompt: true, } ``` - 中型项目测试(44 个接口) - JavaScript 模式 - 不使用 JsDoc - 包含快照 ### usercenter ```typescript { filename: 'index', isTypeScript: false, jsdoc: { enable: false }, snapshotsPath: undefined, // 运行时设置 skipPrompt: true, } ``` - 小型项目测试(3 个接口) - JavaScript 模式 - 不使用 JsDoc - 包含快照 ## 添加新配置 ### 1. 在 configs.js 中添加配置 ```javascript const newProjectConfig = { filename: 'new-project', isTypeScript: true, skipPrompt: true, }; module.exports = { // ...其他配置 newProjectConfig, getConfig, }; ``` ### 2. 创建测试文件`tests/dev/``tests/build/` 中创建对应的测试文件,使用 `require()` 导入配置: ```typescript // tests/dev/new-project.ts const { newProjectConfig, getConfig } = require('./../base/configs'); ``` ```javascript // tests/build/new-project.js const { newProjectConfig, getConfig } = require('./../base/configs'); ``` ## 优势**配置一致性**:确保 `dev``build` 测试使用完全相同的配置 ✅ **易于维护**:只需维护一个配置文件 ✅ **避免重复**:所有测试文件共享配置,减少代码重复 ✅ **简单高效**:TypeScript 和 JavaScript 都可以通过 `require()` 导入 ✅ **清晰明了**:配置集中管理,易于查看和理解 ## 注意事项 1. **使用 require**:所有测试文件(包括 `.ts`)都使用 `require()` 导入配置 2. **动态路径**`loggerPath``snapshotsPath` 应在运行时通过 `getConfig()` 设置 3. **skipPrompt**:所有测试配置应设置 `skipPrompt: true` 以支持自动化测试 4. **命名规范**:配置名称应与测试用例名称对应(如 `allApiConfig` 对应 `all-api` 测试)