【问题标题】:Unit Testing Syntax error, react, mocha单元测试语法错误,反应,摩卡
【发布时间】:2016-08-03 16:19:36
【问题描述】:

我正在尝试使用酶、摩卡和柴为我的反应应用程序设置一些测试。 (我也在使用 webpack)。我为我的浏览器内测试设置了 Karma,但我想只使用节点运行这些测试。

我目前在尝试运行测试时遇到语法错误。我不知道如何解决它。

更新:我正在使用 es6 mocha 'components/**/*.test.js' --recursive --compilers js:babel-register 运行我的测试

我得到的错误是:

   8 | describe('<button />', () => {
   9 |     it('renders something', () => {
> 10 |         const wrapper = shallow(<button />)
  11 |         expect(wrapper).to.be.present
  12 | })

【问题讨论】:

  • 你在用 ES6 运行测试吗? mocha --compilers js:babel-core/register 之类的东西?
  • 是的,使用./node_modules/.bin/mocha 'components/**/*.test.js' --recursive --compilers js:babel-register
  • @Ash 你的 Babel 配置是什么?
  • @robertklep 哦,我不认为我有什么特别配置..我需要什么?

标签: node.js reactjs mocha.js chai


【解决方案1】:

你需要设置 Babel 才能处理 JSX 语法。

有两种选择:将配置添加到您的package.json,或创建一个名为.babelrc 的文件来包含配置。

首先,安装babel-preset-react

$ npm i babel-preset-react --save

接下来,将以下内容添加到您的package.json

"babel": {
  "presets": [ "react" ]
}

(或将该对象添加到 .babelrc,不带 "babel" 键)

您可能想要使用的另一个预设是babel-preset-es2015,您可以以类似的方式添加它(只需将其添加到presets 数组中)。

更多关于 Babel 配置 herehere 的文档(专门针对 es2015)。

【讨论】:

  • 解决了这个问题,非常感谢!虽然现在我遇到了一个问题,它正在访问我导入的 sass 文件并引发语法错误。
  • @Ash 啊,是的,那是因为你使用了 Webpack,毫无疑问。也许this question 可以帮助你。
  • 通过在我的配置中包含忽略样式并要求它解决了样式问题!再次感谢您的帮助!
  • 我认为ignore-styles实际上是一个更好的解决方案:)
  • 好吧,我一定会采纳你的建议的。可能会出现我需要测试中的样式的情况吗?
猜你喜欢
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多