带有笑话的Vue Cli单元测试如何运行单个测试
Posted
技术标签:
【中文标题】带有笑话的Vue Cli单元测试如何运行单个测试【英文标题】:Vue Cli unit test with jest how to run single test 【发布时间】:2019-07-21 08:43:50 【问题描述】:我有使用 vue cli 3 的 vue 应用程序。 在设置过程中,我选择 jest 作为测试框架。 要运行我的单元测试,我在 package.json 中有一个脚本:
test:unit": "vue-cli-service test:unit",
为了运行它,我在 vs 代码终端中编写:
npm run test:unit
这会运行我所有符合 package.json 文件的 jest config 部分中设置的规范的测试。
我的问题是如何只运行一个测试。我需要运行一个特定的命令吗?或者是否有适用于此设置的 vscode 扩展。
【问题讨论】:
我尝试为 vscode 安装 jest-runner 扩展,但是当我尝试运行测试时,它总是说“测试套件无法运行” 这能回答你的问题吗? How do I run a single test using Jest? 【参考方案1】: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
【讨论】:
这不能回答问题。这会运行该特定规范文件中的所有测试,而不是“单个测试” @coler-j,你可以试试it.only(...)
和testPathPattern
选项。【参考方案2】:
如果您只想执行单个文件,那么只需执行以下操作:
npm run test:unit -t counter
OR
npm run test:unit counter
而 counter.spec.js 是我的测试文件。
【讨论】:
这对我不起作用。它只是说0 passing
并且不运行任何测试。
我必须这样做npm run test:unit -t tests/unit/Foo.spec.ts
。【参考方案3】:
为此,您可以使用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
,您将看到所有“其他”测试都在运行。
【讨论】:
以上是关于带有笑话的Vue Cli单元测试如何运行单个测试的主要内容,如果未能解决你的问题,请参考以下文章
无法读取未定义的属性“getters” - 带有笑话的 VueJS 单元测试
如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法