auto-request
Version:
通过Yapi JSON Schema生成接口Axios或Taro接口
178 lines (142 loc) • 4.56 kB
Markdown
# 测试配置统一管理
本目录包含所有测试用例的统一配置,确保开发测试和构建测试使用完全相同的配置。
## 文件说明
### 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` 测试)