Vue Cli单元测试开玩笑如何运行单一测试

时间:2019-02-27 15:15:02

标签: vuejs2 jestjs vue-cli-3

我使用vue cli 3进行了vue申请。 在设置过程中,我选择了jest作为测试框架。 为了运行单元测试,我在package.json中有一个脚本:

test:unit": "vue-cli-service test:unit",

运行它,我在vs代码终端中编写:

npm run test:unit

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

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

3 个答案:

答案 0 :(得分:5)

如果您只想执行单个文件,则只需执行以下操作:

npm run test:unit -t counter

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

为此,您可以使用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', () => {
        ...
    })
})

再次运行npm run test:unit -t myunittests,您将看到所有“其他”测试都在运行。