无法运行Jest测试:`SyntaxError:意外的令牌<`

时间:2017-07-21 21:15:04

标签: javascript reactjs testing babel jest

我知道这可能是之前发布的,但我真的很难理解为什么我的测试在我的React项目中不起作用。这是我的.babelrc文件:

{
    "presets": ["react", "es2015", "stage-0"],

    "plugins": [
        "transform-runtime",
        "add-module-exports",
        "transform-decorators-legacy"
    ],

    "env": {
        "development": {
            "plugins": [
                "typecheck",
                ["react-transform", {
                    "transforms": [{
                        "transform": "react-transform-catch-errors",
                        "imports": ["react", "redbox-react"]
                    }]
                }]
            ]
        },
        "test": {
            "presets": ["es2015", "react", "stage-0"],
            "plugins": [
                "transform-runtime",
                "add-module-exports",
                "transform-decorators-legacy"
            ]
        }
    }
}

这是我在package.json

中的Jest设置
  "jest": {
    "moduleFileExtensions": [
      "js",
      "jsx",
      "json"
    ],
    "moduleNameMapper": {
      "ExampleTest": "<rootDir>/app/pages/ExampleTest.js"
    },
    "moduleDirectories": [
      "app",
      "node_modules"
    ]
  },

我得到的错误是Test suite failed to run... SyntaxError: Unexpected token <

从我可以告诉我的错误,它试图运行的文件中包含JSX / ES6代码......并且它不知道如何转换它?这很奇怪,因为我告诉它在.babelrc中做到这一点。我还为Jest提供了适当的moduleDirectories

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

最后一个逗号,在你的JSON中是错误的。它应该看起来像:

#!/bin/bash
while getopts ":m:s:xh" opt; do
#codes
done

答案 1 :(得分:0)

确保在测试文件中导入React

答案 2 :(得分:0)

如果你的package.json文件只包含框中显示的内容,我认为问题是&#34;},&#34;当你包含一个昏迷时,它应该不在那里(如果package.json文件只包含框中显示的内容),因为它是最后一行代码,并且没有更多的JSON代码。希望它有用!

答案 3 :(得分:0)

如果有人好奇的话,答案是配置Jest以优雅地处理资产文件,例如样式表和图像。通常,这些文件在测试中不是特别有用,所以我们可以安全地模拟它们。要了解更多信息,请参阅Jest文档中的Using with Webpack