Vue Cli unit test with jest 如何 运行 单机测试

Vue Cli unit test with jest how to run single test

我有一个使用 vue cli 3 的 vue 应用程序。 在设置过程中,我选择了 jest 作为测试框架。 对于 运行 我的单元测试,我在 package.json:

中有一个脚本
test:unit": "vue-cli-service test:unit",

然后 运行 这是我在 vs 代码终端中写的:

npm run test:unit

这 运行 我所有的测试都符合 package.json 文件的 jest 配置部分中设置的规范。

我的问题是如何运行 只进行一次测试。我需要 运行 的特定命令吗?或者是否有适用于此设置的 vscode 扩展。

Vue CLI 服务尊重 Jest 的 CLI 选项,因此您可以将它们附加到 package.json 中的命令,例如

{
  ...
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test:unit": "vue-cli-service test:unit",
    "test:only": "vue-cli-service test:unit --testPathPattern=user.store",
  },
  "dependencies": { 

testPathPattern 采用适用于规范文件名的正则表达式,因此在我的测试中,如果我指定模式

--testPathPattern=user.store  

我 运行 单个规范文件,但如果我指定

--testPathPattern=store

我 运行 多个匹配的规范文件,名称中包含 store

这是Jest docs ref

如果您只想执行单个文件,那么只需执行:

npm run test:unit -t counter
OR
npm run test:unit counter

而 counter.spec.js 是我的测试文件。

为此,您可以使用 only 方法。它可以直接链接到 test 方法。

myunittests.spec.js

describe('My Unit Tests', () => {
    test('My excluded test', () => {
        ...
    })

    test.only('my single test', () => {
        ...
    })
})

之后,您可以 运行 通过 运行 宁 npm run test:unit -t myunittests 进行测试。

还有一个可以链接的skip方法。

myunittests.spec.js

describe('My Unit Tests', () => {
    test('My excluded test', () => {
        ...
    })

    test.skip('my single test', () => {
        ...
    })
})

再次 运行ning npm run test:unit -t myunittests 你会看到所有 'other' 测试都是 运行ning.