首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vue-cli-3项目上运行Mocha Test Explorer需要哪些babel或其他设置?

在vue-cli-3项目上运行Mocha Test Explorer需要哪些babel或其他设置?
EN

Stack Overflow用户
提问于 2019-11-15 06:49:38
回答 3查看 744关注 0票数 5

我已经创建了一个使用vue3测试的Mocha cli项目:

代码语言:javascript
复制
vue create vue_proj_with_mocha_testing 
(accept defaults)
cd vue_proj_with_mocha_testing
vue add unit-mocha

然后在Visual Code中安装Mocha Test Explorer扩展,重新启动,将文件夹添加到工作区,单击文件夹ctrl-shift-p和Mocha Test Explorer:"Enable for a workspace folder“。Mocha Test Explorer似乎不喜欢vuecli的example.spec.js测试:

代码语言:javascript
复制
import { expect } from 'chai'
import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
  it('renders props.msg when passed', () => {
    const msg = 'new message'
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg }
    })
    expect(wrapper.text()).to.include(msg)
  })
})

我将此条目添加到测试中,以便Test Explorer找到vue“settings.json”文件夹,该文件夹与默认的"test“不同。

代码语言:javascript
复制
"mochaExplorer.files": ["tests/**/*.spec.js"],

然后在测试资源管理器中收到此错误:

代码语言:javascript
复制
import { expect } from 'chai';
^^^^^^

SyntaxError: Cannot use import statement outside a module

这表明我有一些转换工作要做,Mocha Test Explorer指出了实现这一点的方法是settings.json中的"mochaTestExplorer“字段,但我不确定需要什么样的babel包组合。要在Visual Studio代码中的Mocha test Explorer中运行这个开箱即用的vue-cli-3测试,应该做些什么?这是我目前的猜测:

代码语言:javascript
复制
"mochaExplorer.require": [
    "@babel/preset-env",
    "@babel/register", 
    "@babel/polyfill",
    "@babel/plugin-transform-runtime"
],
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-24 18:56:20

我担心你想要的是不可能的-问题是正确设置Babel是不够的。Vue单文件组件(.vue)需要由Webpack插件Vue Loader处理。

而且没有简单的方法来设置Mocha Test Explorer来使用作者自己在this thread - Support for vue cli projects中指出的webpack

所以我决定将我的测试分成两组,tests/ui (使用Vue组件的测试)和tests/unit (非ui测试),并使用费尔南多描述的设置,并进行以下修改:

将Mocha Test Explorer配置为仅搜索非ui测试:

代码语言:javascript
复制
"mochaExplorer.files": "tests/unit/**/*.spec.js",

package.json:

代码语言:javascript
复制
"test:unit": "vue-cli-service test:unit tests/unit/**/*.spec.js tests/ui/**/*.spec.js",

从命令行运行测试时,...to包括这两个文件夹

注意:最后一步-修改babel.config.js -是不需要的,没有它一切都很好...

票数 0
EN

Stack Overflow用户

发布于 2020-03-03 02:55:30

首先,在您的devDependencies中添加@babel/register

之后,在Visual Studio Code settings.json中添加

代码语言:javascript
复制
"mochaExplorer.files": "tests/**/*.spec.js",
"mochaExplorer.env": {
  "NODE_ENV": "test"
},
"mochaExplorer.require": [
  "@babel/register"
]

最后,更改您的babel.config.js,如下所示:

代码语言:javascript
复制
const presets = [];

if (process.env.NODE_ENV === 'test') presets.push('@babel/preset-env');
else presets.push('@vue/cli-plugin-babel/preset');

module.exports = {
  presets,
};
票数 1
EN

Stack Overflow用户

发布于 2020-10-07 03:27:53

在略有不同的配置下,我为自己工作:在.vscode/settings.json

代码语言:javascript
复制
{
    "mochaExplorer.require": "esm"
}

esm也应该在你的开发依赖中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58867712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档