You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jest中是否可以导入测试用例到其他文件以构建冒烟测试套件?

Jest 跨文件复用测试用例实现方案

Jest 完全支持跨文件复用单个测试用例,你可以通过抽离可复用测试逻辑为导出函数的方式,快速搭建自定义冒烟测试套件,具体实现步骤如下:

步骤1:重构原有测试文件,导出待复用测试用例

修改原有测试文件,将需要复用的it测试逻辑抽离为独立函数并导出,原有测试运行逻辑不受影响:

文件1(test1.test.js)

import { csv, doSomething } from './common'

// 抽离Test 1.1逻辑,对外导出
export const test1_1 = (data) => {
  it('Test 1.1', async function () {
    const testObject = await doSomething(data);
    expect(Array.isArray(testObject)).toBe(true);
  });
}

// 原有测试逻辑保留,支持独立运行
describe('Test 1', function () {
  let data;
  beforeAll(async () => {
    data = await csv().fromFile('./src/data/test.csv');
  });
  test1_1(data);
});

文件2(test2.test.js)

import { csv, doSomething } from './common'

// 抽离Test 2.1逻辑,对外导出
export const test2_1 = (data) => {
  it('Test 2.1', async function () {
    const testObject = await doSomething(data);
    expect(Array.isArray(testObject)).toBe(true);
  });
}

// 原有测试逻辑保留,支持独立运行
describe('Test 2', function () {
  let data;
  beforeAll(async () => {
    data = await csv().fromFile('./src/data/test.csv');
  });
  test2_1(data);
});

步骤2:新建冒烟测试套件文件

创建单独的冒烟测试文件,导入之前导出的测试用例函数,统一组装运行:

冒烟测试文件(smoke.test.js)

import { csv } from './common'
import { test1_1 } from './test1.test'
import { test2_1 } from './test2.test'

describe('冒烟测试套件', function () {
  let data;
  // 公共初始化逻辑仅执行一次,提升测试运行效率
  beforeAll(async () => {
    data = await csv().fromFile('./src/data/test.csv');
  });

  // 直接复用两个测试用例
  test1_1(data);
  test2_1(data);
});

注意事项

  • 抽离测试用例时不需要导出外层describe,仅导出测试逻辑本身即可,避免结构嵌套冗余
  • 测试用例如果有专属的beforeEach/afterEach等生命周期,可以一起封装到导出的函数内部
  • 运行时执行jest smoke.test.js即可仅运行冒烟测试套件,原有测试文件的独立运行逻辑不受任何影响
  • 可以根据需求自由组合不同文件导出的测试用例,搭建不同场景的测试套件

内容的提问来源于stack exchange,提问作者Jhon Kolecha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:36:02