玩弄Vue Cli单元测试如何运行单个测试

Jim*_*hoe 9 jestjs vuejs2 vue-cli-3

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

test:unit": "vue-cli-service test:unit",
Run Code Online (Sandbox Code Playgroud)

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

npm run test:unit
Run Code Online (Sandbox Code Playgroud)

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

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

Ric*_*sen 6

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": { 
Run Code Online (Sandbox Code Playgroud)

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

--testPathPattern=user.store  
Run Code Online (Sandbox Code Playgroud)

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

--testPathPattern=store
Run Code Online (Sandbox Code Playgroud)

store在名称中运行多个匹配的规范文件。

这是Jest 文档参考


Har*_*val 5

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

npm run test:unit -t counter
Run Code Online (Sandbox Code Playgroud)

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

  • 我必须执行“npm run test:unit -ttests/unit/Foo.spec.ts”。 (5认同)
  • 这对我不起作用。它只是说“0 通过”并且不运行任何测试。 (3认同)